2014年12月9日火曜日

[awk]BEGINブロック, ENDブロック

BEGIN ブロック
初期化用のコードを定義する
END ブロック
入力ファイルのすべての行の処理が終了した後に実行される。一般的には最終的な計算や、出力ストリームの最後に合計を出力するために使用される。
入力ファイルの各行にある 1 つめの要素を表示する。
test02.awk
BEGIN {

}
{
 print $1
}
END {

}
a.txt
500 1000 1000
500 1001 1001
500 1002 1002
550 1500 1500
550 1500 1500
645 1800 1800
720 2000 2000
実行結果
> awk -f test02.awk a.txt
500
500
500
550
550
645
720
入力ファイルがコロン ":" で区切られている場合。
d.txt
500:1000:1000
500:1001:1001
500:1002:1002
550:1500:1500
550:1500:1500
645:1800:1800
720:2000:2000
実行結果
> awk -f .\test02.awk .\d.txt
500:1000:1000
500:1001:1001
500:1002:1002
550:1500:1500
550:1500:1500
645:1800:1800
720:2000:2000
BEGIN ブロックで FS (Field Separator) を使って区切り文字を指定する。
test03.awk
BEGIN {
 FS=":"
}
{
 print $1
}
END {

}
実行結果
> awk -f .\test03.awk .\d.txt
500
500
500
550
550
645
720

0 件のコメント:

コメントを投稿