【問題のみ】jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会

Sat Apr 27 12:51:08 JST 2019 (modified: Sat Apr 27 12:51:08 JST 2019)
views: 1603, keywords: プログラミング,勉強会,シェル芸,シェル芸勉強会

  このエントリーをはてなブックマークに追加 
  • 問題で使われているデータファイルはGitHubにあります。クローンは以下のようにお願いします。
  • もっと良い解答例がTwitter上にあります。
$ git clone https://github.com/ryuichiueda/ShellGeiData.git
  • 環境: 解答例はUbuntu Linux 18.04 で作成。Macの場合はcoreutilsをインストールすると、GNUのコマンドが使えます。BSD系の人は玄人なので各自対応のこと。

Q1

 次のファイルについて、2列目をキーにしてエクセルの横列の記号(A, B, ..., Z, AA, AB, ...のやつ)順に並べ替えてください。

$ cat excel
   114514 B
   1192296 AA
   593195 CEZ
   4120 TZ
   999 QQQ

Q2

 次のファイルのレコードを干支順にソートしてください。

$ cat eto_yomi
   申 さる
   子 ね
   寅 とら
   卯 う
   巳 み
   辰 たつ
   丑 うし
   酉 とり
   戌 いぬ
   亥 い
   午 うま
   未 ひつじ

ただし、次のファイルを補助に使って良いこととします。

$ cat eto
   子丑寅卯辰巳午未申酉戌亥

Q3

 次のファイルのレコードを数字(第一フィールドの計算結果)が小さい順に並べてください。

$ cat kim_calc
   1+2+4 金正日
   4*3 金正男
   3-1-5 金日成
   495/3 金正恩
   0x1F 金正哲

Q4

 次のファイルはシフトJISのテキストですが、これを1) 辞書順、2) 数字の小さい順、にソートしてください。出力もシフトJISとします。

$ cat sjis | nkf -g
   Shift_JIS
   $ cat sjis | nkf -wLux
   123 ずんごるももう
   31 こきたてひーひー
   9 ほじぱんふんじこみ
   2242 たまもとやろう

Q5

 サイズの小さい順にソートしてください。

$ cat size 
   2GB
   1.2GB
   40000MB
   1000000000kB
   0.4GB
   410MB

Q6

 sleepと内部コマンドだけを使って次の数を小さい順にソートしてください。

$ cat nums
   5.4
   0.34
   2.3
   0.9
   6

Q7

 次のローマ数字をソートしてください。

$ cat roman
   IV
   XI
   LXXXIX
   IX
   XLIII
   XX
   VIII

Q8

 次のファイルを辞書順にソートしてください。ただし、濁点がついているものが先に来るようにしてください。できる人はワンライナー中で「かきくけこがぎぐげご」の文字を使わないでください。

$ cat gagigugego 
   かき氷
   ぎ・おなら吸い込み隊
   きつねうどん
   ぐりこもりなが事件
   きききりん
   がきの使い
   くその役にも立たない
   げんしりょく発電
   ごりらいも
   こじんてきにはクソ
がきの使い
   かき氷
   ぎ・おなら吸い込み隊
   きききりん
   きつねうどん
   ぐりこもりなが事件
   くその役にも立たない
   げんしりょく発電
   ごりらいも
   こじんてきにはクソ


prev:日記(2019年4月26日) next:【問題と解答】jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会

やり散らかし一覧

記事いろいろ




このサイトではGoogle Analyticsやその他ソーシャルボタンのためにCookieを使用しています。もし同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。This site uses cookies for Google AdSense and some social buttons. If you cannot accept our use of cookies, please disable cookies on your browser.