データの一部のみが取り出したい場合があります。特定の行のみが欲しい場合は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冊本が書けてしまうとか)。