【問題のみ】第29回激しいシェル芸勉強会
Sat Jul 1 13:08:06 JST 2017 (modified: Sat Dec 14 19:05:56 JST 2019)
views: 3357, keywords:コマンド,UNIX/Linuxサーバ,勉強会,シェル芸,シェル芸勉強会 この記事は最終更新日が5年以上前のものです。
問題で使うファイル等
GitHubにあります。ファイルは
https://github.com/ryuichiueda/ShellGeiData/tree/master/vol.29
にあります。
クローンは以下のようにお願いします。
$ git clone https://github.com/ryuichiueda/ShellGeiData.git環境
解答例はUbuntu Linux 16.04 で作成。Macの場合はcoreutilsをインストールしてつかいましょう。BSD系の人は玄人なので各自対応のこと。
イントロ
Q1
次の2つのファイルは、講義で出した課題1,2それぞれの点数です。
$ cat kadai1
001 山田 20
002 出川 30
005 鳥海 44
$ cat kadai2
001 山田 20
003 上田 15
004 今泉 22
005 鳥海 44両方に名前のある人については点数を合計して、次のように全員の得点リストを作ってください。
001 山田 40
002 出川 30
003 上田 15
004 今泉 22
005 鳥海 88Q2
次の2つのファイルは、5回の講義の出欠と6回目の講義で出席した人の番号のデータです。attendに6回目の講義の出欠を反映したデータを標準出力に出力してください。
$ cat attend
001 山田 出出欠出出
002 出川 出出欠欠欠
003 上田 出出出出出
004 今泉 出出出出出
005 鳥海 欠出欠出欠
$ cat attend6
001,005,003Q3
次の2つのファイルは5回の講義の出欠とテストの成績を記録したファイルです。
###$1: 番号, $2: 名前, $3: 出欠 ###
$ cat attend
001 山田 出出欠出出
002 出川 出出欠欠欠
003 上田 出出出出出
004 今泉 出出出出出
005 鳥海 欠出欠出欠
###$1: 番号, $2: テストの点数(受けてない人のデータは無い)###
$ cat test
001 90
002 78
004 80
005 93こういうルールで、最終的な点数を出して、番号、名前、点数を記録したファイル作ってください。
- 出席が過半数に満たない人、テストを受けていない人は0点
- 出席が過半数の人はテストの点数を採用
Q4
Q4.1
次の出力をパイプで受けて
$ echo -1 4 5 2 42 421 44 311 -9 -11次のように同じ桁のものを横並びに出力を得てください。横に並べる時の順番は任意とします。また、この出力のように正の数と負の数を分けます。
-11
-9 -1
2 4 5
42 44
311 421 Q4.2
次の出力をパイプで受けて
$ echo -1 +4 5 2 42 421 44 311 -9 -11次のように同じ桁のものを横並びに出力を得てください。Q1.1と同じく横に並べる時の順番は任意とします。
-11
-9 -1
2 +4 5
42 44
311 421 Q5
次のファイルの中身について、
$ cat triangle
1
3 9
7 a 6
8 4 2 5次のように右に転がしてください。できる人はawkを使わないでやってみましょう。
8
4 7
2 a 3
5 6 9 1Q6
次の1から100までの素数を書いたファイル(いくつか欠番が存在)について、
$ cat prime
2 3 5 7 11 13 17 19 31 37 41 43 47 53 59 67 71 73 79 83 89 97次のように欠番のところで折り返してください。(ワンライナーの中に欠番を直接書かないでくださいね。)
2 3 5 7 11 13 17 19
31 37 41 43 47 53 59
67 71 73 79 83 89 97Q7
リポジトリ内のnyaan.htmlは、ブラウザで見ると次のように見えます。
次のようにcatから始めて、この文字を(大きなまま)端末上に表示してみてください。
$ cat ./nyaan.html | ...できる人は小さい通常の文字で「にゃーん」と出してみてください(これは解答例を考えていません)。
Q8
次のshellgeiファイルについて、
$ cat shellgei
m
""m m "m # # # #
mm # # #mmm""" m"
" m" mmm"" # # # m" # mm""m
m" #mm m" # m" " # #
"mm"" """" " m" #" m" #
次のように、文字の無い列を詰めてください。
m
""m m "m # # # #
mm # # #mmm""" m"
" m" mmm"" # # # m" # mm""m
m" #mm m" # m" " # #
"mm"" """" "m" #" m" #
ノート
Tweet