【問題】第19回シェル芸3周年記念勉強会
Sat Oct 31 13:58:59 JST 2015 (modified: Sat Sep 30 16:15:34 JST 2017)
views: 2358, keywords:CLI,勉強会,シェル芸 この記事は最終更新日が7年以上前のものです。
イントロ
問題で使うファイル等
前回からGitHubに置くようにしました。ファイルは
https://github.com/ryuichiueda/ShellGeiData/tree/master/vol.19
にあります。
クローンは以下のようにお願いします。
git clone https://github.com/ryuichiueda/ShellGeiData.git $
環境
今回はLinuxで解答例を作りましたので、BSD系、Macな方は以下の表をご参考に・・・。
Mac,BSD系 | Linux |
---|---|
gdate | date |
gsed | sed |
tail -r | tac |
gtr | tr |
gfold | fold |
Q1
端末で実行すると「1ppm」と出力されて、シェルスクリプトに書いて実行すると「40ppm」」と出力されるコマンドの組み合わせを考案してみましょう。フォルクスワーゲンは関係ありません。
Q2
二つの自然数を
echo 1 4 $
というようにechoで出力したあと、
4
3
2
1
2
3
4
というように間の数を埋めてみてください。
Q3
「1234567890」を含む13桁の数字(0から始まる数字を含む)をすべて列挙してみましょう。マイナンバー?何それ?
Q4
以下のデータについて、「すっとこどっこい」を「朴念仁」に変換しましょう。「すっとこどっこい」以外の部分の改行は除去してはいけません。
cat Q4
$
この
すっとこどっ
こい
すこっと
どっこい
すっとこすっとこど
っこい
どっこいどっこい
すっとこどっこん
すっ
とこ
どっ こい
Q5
/?page_id=7123 から、画像を抜き出して保存しましょう。
Q6
ファイルQ6は、Shift JISで記録された日本語を2進数にしたものです。ワンライナーで日本語に直してみましょう。
cat Q6
$ 1000101001100101100100100110111010000010110010011001000110111101100011101110110110010001101111011001011101101100100000101100100010010011011100011001010010001110100000101010101010010001101101101000110111011101100000101011011110000010111010011000000101000010000011010000101010010011110000011000001011001001100101110100110010010110101111001000001011001000100000101110000010000010110011001000001011001101100101101110110010001011100001011001001101110001100101001000111010000010110001011000001010100000100000101110100110000001010000100000110100001010
Q7
bashでは変数SHLVLに、今使っているbashの深さ(子シェル:2, 孫シェル:3, ...)が入っています。echo $SHLVLで、100を出してみてください。
Q8
以下のワンライナーに加筆して、1000プロセスぐらい立ち上げた後で止めてみてください。壊しても良い環境で行ってください。
: (){ : | : & }; : $