awk
のプログラムはルールと関数定義などの並びの集まりである。
(関数についてはこの後のセクション ユーザー定義関数を参照.)
ルールはパターンとアクション、もしくはそのどちらか一方からなる。
アクションの目的はawk
に対してパターンがマッチしたときに何を行な
うかを示すということである。したがって、完全な形のプログラムは次のようなもの
である。
[pattern] [{ action }] [pattern] [{ action }] ... function name (args) { ... } ...
アクションは、カーリーブレース(`{' と `}')に囲まれたひとつ以上
のawk
の文から構成される。それぞれの文は一つのことをする。文は改行かセ
ミコロンで区切られている。
たとえアクション部がたった一つの文だけであったり、文がなかったとしても、アク ション部をカーリーブレースで囲まなければならない。しかし、アクション部を省略 するのであればカーリーブレースも一緒に省略することができる (省略されたアクショ ンは`{ print $0 }'と同じ働きをする)。
以下に挙げるものはawk
がサポートする文の種類である。
awk
プログラムの制御フローを特定する制御文。 awk
言語ではCと同じ
ような(if
, for
, while
, など) 制御文と、幾つかの特殊な制
御文がある
(セクション アクション中の制御文を参照).
if
,
while
, do
, for
などの制御文の本体に複数の文を記述するの
に使われる。
getline
コマンド
(セクション getline
を使った入力を参照)や、
next
文(セクション next
文を参照)を
使用した入力制御。
print
と printf
の出力文
セクション 出力を参照.
delete
文を参照.この次の二つの章では式と制御文の詳細をそれぞれ記述する。配列や組み込み関数、 式の中でのそれらの使いかたを扱う。そのあとでどのようにユーザー定義関数を定義 するのかについてふれる。