しぐまろぐ

勉強したことや読んだ本について書きます。

シェル・ワンライナー160本ノック 問題5

問題5:設定ファイルからの情報抽出

特定のファイル(ntp.conf)から、一列目にpoolと書かれている行にあるサーバ名を抽出する

解答

$ cat ntp.conf | awk '$1=="pool"{print $2}'

問題5にして初めて正しい結果が得られた!!
これは人類にとっては小さな一歩だが、私にとっては偉大な飛躍です!*1

別解

$ cat ntp.conf | awk '$1=="pool"' | awk '{print $2}'

解答の方でも良いが、対象ファイルが大きなファイルで速度や効率を気にする場合は分けた方が良いそう。

その他メモ

  • 週末にxargs, grep, awk, sedだけでも以下の本で勉強する。基本を復習してからワンライナー本に入ろうとすると、いつまで経っても取り組めないのが目に見えているが、最低でも上記のコマンドをもう少しスルッと使えるようにならないと、問題を解くのに時間がかかりすぎる。