awk > 最初と最期に処理をする方法

更新日 2012-06-03
広告
最初と最期に処理をする方法を紹介します。
awkで、ファイルの内容を処理する前に、任意の処理を実行することがでいます。例えば、変数を初期化したりできます。
また、ファイルの内容を処理した後に、任意の処理を実行することもできます。例えば、各行の値を合計して、その結果を最期に出力したりできます。 データファイル sample.dat を利用して、説明します。
1 10 100
2 20 200
3 30 300

最初に処理する方法

最初に処理するためには、BEGIN を指定します。BEGINの後の {} の中に書いたプログラムは、ファイルを処理する前に、一度だけ実行されます。その次の {} の中に書いたプログラムは、ファイルの各行に対して実行されます。
$ awk 'BEGIN { sum=10; } { print sum+$1; }' sample.dat
11
12
13
上の例では、最初に、変数sumを10で初期化しています。

最期に処理する方法

最期に処理するためには、END を指定します。ENDの後の {} の中に書いたプログラムは、ファイルを処理した後に、一度だけ実行されます。
$ awk 'BEGIN { sum = 0; } { sum += $1; } END { print sum; }' sample.dat
6
上の例では、合計した後を、最期に出力しています。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system