Skip to content

Instantly share code, notes, and snippets.

@papiron
Last active December 6, 2015 07:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save papiron/72dbbe767d53901adaf4 to your computer and use it in GitHub Desktop.
Save papiron/72dbbe767d53901adaf4 to your computer and use it in GitHub Desktop.
シェル芸勉強会過去問第2回(問題のみ)
問題1: 文字化けしたファイルの削除
次のように、空ファイル abc, DEFG と、文字化けした空ファイルを作ってください。
【今回は問題データのQ1ディレクトリ以下に作成済み】
$ touch abc
$ touch DEFG
$ echo ほげ | nkf -s | xargs touch
$ ls
%82ق%B0 DEFG abc
文字化けしたファイルを消してください。ただし、日本語の入力は禁止です。
使いそうなコマンド: xargs、grep、tr、tarr
問題2: 計算
以下のファイル中の数字を全部足し算してください。
$ cat Q2/num
1
2 3 4
5 6
7 8 9 10
使いそうなコマンド: bc、tr、yarr、tarr、awk、numsum、ysum、sum2
問題3: 条件でデータを取り出し
下のhogeファイルから、aとbについてそれぞれ一番大きな数を求めましょう。
$ cat Q3/hoge
a 12
a 13
b 13
a 432
b 111
b 43
使いそうなコマンド: awk、sort、getlast
問題4: 計算
以下のファイル中の数字を、キー(a,b)ごとに全部足し算してください。
$ cat Q4/num2
a 1
b 2 3 4
a 5 6
b 7 8 9 10
使いそうなコマンド: awk、tarr、yarr、sort、sm2、ysum、self
問題5: 日付と曜日
以下のようにファイルを作って、何曜日が何日あるか集計してください。
【今回は問題データのQ5ディレクトリ以下に作成済み】
$ seq 1990 2012 | awk '{print $1 "0101"}' > osyoga2
$ head -n 5 osyoga2
19900101
19910101
19920101
19930101
19940101
使いそうなコマンド: date、yobi、xargs、sed、uniq、count
問題6: ダミーデータの作成
seq 1 100 の出力をランダムに並び替えてください。
使いそうなコマンド: 敢えて無しで・・・
問題7: 検索
大文字小文字を区別しない場合、以下の辞書ファイルから、重複する単語を検索してください。
asciiコード以外の字がありますが、 とりあえず気にしないでください。
$ head Q7/words
A
A's
AA's
AB's
ABM's
AC's
ACTH's
AI's
AIDS's
AM's
使いそうなコマンド: tr、sort、uniq、count・・・
問題8: ファイルの比較
file2から、file1にない数字を抽出してください。
$ cat Q8/file1
1
3
4
6
9
$ cat Q8/file2
2
3
4
5
9
使いそうなコマンド: diff、uniq、grep、comm、join0
問題9: 形式変換
gameから、resultように整形してください。
$ cat Q9/game
1 表 2
1 裏 2
2 表 0
2 裏 1
3 表 3
3 裏 0
4 表 3
4 裏 0
5 表 0
5 裏 0
$ cat Q9/results
1 2 3 4 5
表 2 0 3 3 0
裏 2 1 0 0 0
使いそうなコマンド: self、map、tateyoko
問題10: ファイルの結合
file1、file2 から、下の出力を得てください。
$ cat Q10/file1
001 うそ
002 笑止
003 矢追純
$ cat Q10/file2
001 800
002 10000000
003 1
欲しい出力
001 うそ 800
002 笑止 10000000
003 矢追純 1
使いそうなコマンド: awk、join、join1、loopj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment