【問題のみ】jus共催 第41回{ウン,ガク,}{チ,ト,}{,ン}{,コイン}{ブ,}{ラブラ,ハ,}{,イブ}{無,有}罪シェル芸勉強会
Sat Apr 27 12:51:08 JST 2019 (modified: Sat Apr 27 12:51:08 JST 2019)
views: 2375, keywords:プログラミング,勉強会,シェル芸,シェル芸勉強会 この記事は最終更新日が5年以上前のものです。
- 問題で使われているデータファイルは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
かき氷
ぎ・おなら吸い込み隊
きつねうどん
ぐりこもりなが事件
きききりん
がきの使い
くその役にも立たない
げんしりょく発電
ごりらいも
こじんてきにはクソ
- 例
がきの使い
かき氷
ぎ・おなら吸い込み隊
きききりん
きつねうどん
ぐりこもりなが事件
くその役にも立たない
げんしりょく発電
ごりらいも
こじんてきにはクソ