読者です 読者をやめる 読者になる 読者になる

黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

シェル芸勉強会という凄いものがあるらしい(2日目)

シェル芸勉強会の過去スライドの続きをやってみる

前回は問題3までやったので、今回はその続きからやっていこうと思います。

  • 第一回 問題4
    • 下記のようなファイルを作って、集計。
$ while : ; do echo $((RANDOM % 110)) ; done > ages && head ages
47
36
33
74
2 
 
$ cat ans
0〜9 55702
10〜19 55489
20〜29 55604
以下略  

スライドの模範解答まんまですが、自力ではどうにもな感じだったので泣きます。 こればっかりはawkを使えないとダメっぽいので調べたことをちょいと書きます。

  • awk '{}'な感じの書式
  • awk '{print $1}' fileとか書くと、そのfileの1つ目のフィールドを出力
  • int()関数は実数や文字列を整数にする

正確な理解をできているか全く自信がありませんが、以上のことを踏まえればなんとか書けるようですね。

 

  • 第一回 問題5

シェルスクリプトFizz Buzz…いつかは出てくるんだろうなあと思っていたら速攻で出てきて戸惑いを隠し切れないでござる。

ちょろっと調べてみるとawkにも当然if文があるようですので、素直に書いてみた。
素直に書いてみたら、模範解答で素直に書かない回答もありました。なにこれ。
今更ですが過去スライドはこちら

 

  • 第一回 問題6
    • 1978/2/16は何日前でしょう

Open usp Tukubaiというコマンド群をインストールすると、mdate 19780216 20140319で一瞬です。

ぐはあ。眠いのでここまで…