awkの基本

データの任意の列を抽出する

awk '{print $1,$2,$3}' hoge.txt

hoge.txtの1,2,3列目を抽出している。
これを|(パイプ)でGMTに渡すなら例えば以下のようになる

awk '{print $1,$2,$3}' hoge.txt | surface -Ghoge.grd -I0.05 -R$135/137/36/38 -T0.25

データの任意の列を条件付きで抽出する

awk '($3>0.5){print $1,$2,$3}' hoge.txt

hoge.txtのうち3列目の値が0.5より大きいデータの1,2,3列目を抽出している。

データを数値演算してから抽出

awk '{print $1,$2+15,$3}' hoge.txt

hoge.txtの2列目に15を足した後、1,2,3列目を抽出している。

データを文字列として結合する

awk '{print $1 $2,$3}' hoge.txt

hoge.txtの1列目と2列目を文字列として結合し、その文字列と3列目を抽出する。
コンマではなくスペースがあると文字列の結合として認識される。

シェル変数を渡す

awk -v VAL=$hogeval '{$1,$2,$3+VAL}' hoge.txt

hoge.txtの3列目にシェル変数hogeval(awk内ではVAL)の値を足した後、1,2,3列目を抽出している。
awkにシェル変数を渡す場合には、-vオプションでawk内の変数として改めて定義する必要がある。

最終更新:2011年07月15日 14:31