awk の使い方 4
awk における変数
awk では、変数を使うこともできる。
awk の変数は
- 変数宣言は不要
- 型の区別はない(int, double などの区別なし)
- 変数に数値を代入する時は、あらかじめ 0 に初期化されている
- 変数はすべて、C言語の外部変数のように、どこからでも参照できる。
- それ以外の使い方は、C言語とほぼ同じ
という特徴を持っている。
下の例で、データファイル中の数字全部を合計してみよう。
# cat data
1 2 3
4 5 6
7 8 9
# awk '{t += $1+$2+$3} \ <- バックスラッシュの後ろにEnter
END{print t}' data
45
#
ここで、END というのは、全てのデータを読んだ後で、
最後に一度だけ、行なう処理を記述するために使用するものである。
(パターンというものだが、これについてはまた後ほど)
処理の進み方
上の例での、awk の処理の進み方は、以下のようになる。
- 1行目を読む
- $1+$2+$3 を計算する( 1 + 2 + 3 )
- その合計を、変数 t に加算する
( t は最初 0 に初期化されるので、中身は 6 になる )
- 2行目を読む
- $1+$2+$3 を計算する( 4 + 5 + 6 )
- その合計を、変数 t に加算する ( 6 + 15 = 21 )
- 3行目を読む
- $1+$2+$3 を計算する( 7 + 8 + 9 )
- その合計を、変数 t に加算する ( 21 + 24 = 45 )
- ENDの部分を実行する
print t
によって、t の中身 45 が出力される。
- 終り
参考
Prev | Next
Home | Contents
abe@injapan.net