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文を参照.この次の二つの章では式と制御文の詳細をそれぞれ記述する。配列や組み込み関数、 式の中でのそれらの使いかたを扱う。そのあとでどのようにユーザー定義関数を定義 するのかについてふれる。