2-8 データファイルの2行目のデータだけ取り出したい!


 データの一部のみが取り出したい場合があります。特定の行のみが欲しい場合はawkコマンドが便利です。例えばdata.txtの中身が

1 1  1
2 4  8
3 9  27
4 16  64
5 25 125
6 36 216
7 49 343
これに対して下記のようなシェルスクリプトを実行してみます。
#!/bin/sh
awk '{print $2}' data3.txt
すると2行目のデータのみが出力されます。
1
4
9
16
25
36
49
ここでシングルクオテーションであることに注意してください。ダブルクオテーションだとうまく機能しません。

 データの1行目と3行目のみを取り出すには、次のようにすればできます。

#!/bin/sh
awk '{print $1 , $3}' data3.txt
ここでコロン「,」は1行目のデータと3行目のデータの間に空白を入れるために必要です。コロンを抜かしても動作はしますが、データ間に空白がなく、読みにくい出力になってしまいます。sed同様、awkコマンドは汎用性が高く、このほかにも様々なことができます(awkコマンドだけで1冊本が書けてしまうとか)。
前項目へ  次項目へ  目次へ戻る

E-mail : endo cat.phys.s.u-tokyo.ac.jp