今回は、awkコマンドで実行される処理ブロックと変数の初期化を実行するブロックについてご紹介したいと思います。

スポンサーリンク

awkで実行されるブロック処理の構文

awkの処理は大きく分けて、下記の3つのブロックの単位で処理を書くことができます。
1. BEGINブロック
2. メインブロック
3. ENDブロック

下記の形式が基本的な構文の書き方になります。

スポンサーリンク

awkで実行されるブロック処理の順番

awkのブロック処理の順番としては、構文の名前の通り、下記の順番で実行されます。

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

※それぞれの処理のブロックは省略することもできます。

最初に実行されるBEGINブロックで変数の初期化を行うのが基本

まず最初に、awkコマンドを実行すると、BEGINブロックの処理が実行されます。
基本は、最初に実行されるBEGINブロックで変数の処理を実行すると良いかと思います。

基本的にはBEGINブロックで変数を初期化するとしておけば、ソースコードもわかりやすくなり混乱することもなくなり、バグの防止にもつながると思います。

awkのサンプルコード

下記のように、in.txtがあるとします。in.txtの2列目の総和を求めるawkのスクリプトをサンプルコードとしてご紹介します。

下記がサンプルコードになります。

下記が実行結果になります。BEGINブロック→メインブロック→ENDブロックの順番で実行されるているのが確認できます。

スポンサーリンク

awkのサンプルコードの解説

簡単にサンプルコードの解説をしたいと思います。

まずは、BEGINブロックで変数sumに0を代入して初期化をしています。

続いて、メインブロックでは、変数sumに2列目を加算していきます。

最後に、ENDブロックで総和をprint出力しています。

スポンサーリンク