次へ: 6 単純なアルゴリズム 上へ: C のソースからプロトタイプ宣言を作成 前へ: 4 行のチェック (PDF ファイル: awktg.pdf)


5 getline

行単位のフィルタとしての AWK スクリプトは、
  {
    実行コード
  }
のように書くと、基本的に AWK は入力を 1 行ずつ読み込んで、 その各行に対してこの実行コード部分を適用します。 すなわち、入力の 1 行目を読み込んでそれに対してこのコード部分を適用し、 入力の 2 行目を読み込んでそれに対してこのコード部分を適用し、 ということを入力の最終行まで行うわけです。

しかし、今回のような、複数行で一つの意味を持つなどの場合には その形式ではプログラムを書きにくいこともあるため、 コードの途中で現在行を捨てて次の行を読み出す getline という命令も用意されています。

ある意味で行単位のフィルタとしての AWK は、 getline を実行してはコード部分を実行し、 また getline を実行してはコード部分を実行し、 という動作を繰り返していると見ることもできます。 つまり、コードの実行部分の前に必ず暗黙の getline を実行している、 という形式になっています。よって、その暗黙の getline も含めて アルゴリズムの考察を行うことにします。

また今回は、getline 同様、行単位フィルタとして特徴的なジャンプ命令である next も利用します。


次へ: 6 単純なアルゴリズム 上へ: C のソースからプロトタイプ宣言を作成 前へ: 4 行のチェック
竹野茂治@新潟工科大学
2006年6月22日