スポンサーリンク

ENDブロックは終了処理に最適

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

※MACターミナル(BSD系)での動作確認です。

awkのブロック処理の順番は下記のようになります

1. BEGINブロック
2. メインブロック
3. ENDブロック

ENDブロックは最後に実行されますので、
終了処理に最適なので、うまく使いたいところです。

参考:awkで変数の初期化はBEGINブロック内が基本
逆に、初期化はBEGINブロックがわかりやすいですね。

可読性を高めるためにも、BEGINブロックとENDブロックはうまく使うと良いと思います。

スポンサーリンク

サンプルコード

例えば、下記のin.txtがあったとします。

$ cat in.txt 
2
4
6
7
8
9
2
4
7

下記がサンプルコードになります。
$ cat sample.awk 
#!/bin/sh
cat in.txt | awk '		
	#BEGINブロック
	BEGIN{
		sum = 0
	}
	#メインブロック
	{
		sum += $1
	}
	#ENDブロック
	END{
		print "総和=" sum
	}
'

下記が実行結果になります。
$ ./sample.awk 
総和=49

スポンサーリンク