{ 実行コード }のように書くと、基本的に AWK は入力を 1 行ずつ読み込んで、 その各行に対してこの実行コード部分を適用します。 すなわち、入力の 1 行目を読み込んでそれに対してこのコード部分を適用し、 入力の 2 行目を読み込んでそれに対してこのコード部分を適用し、 ということを入力の最終行まで行うわけです。
しかし、今回のような、複数行で一つの意味を持つなどの場合には その形式ではプログラムを書きにくいこともあるため、 コードの途中で現在行を捨てて次の行を読み出す getline という命令も用意されています。
ある意味で行単位のフィルタとしての AWK は、 getline を実行してはコード部分を実行し、 また getline を実行してはコード部分を実行し、 という動作を繰り返していると見ることもできます。 つまり、コードの実行部分の前に必ず暗黙の getline を実行している、 という形式になっています。よって、その暗黙の getline も含めて アルゴリズムの考察を行うことにします。
また今回は、getline 同様、行単位フィルタとして特徴的なジャンプ命令である next も利用します。