awkプログラムまたはawkスクリプト内は、一連のルールや関数定義が混在しています(関数については後述します。See section ユーザ定義関数)。
ルールにはパターンとアクションが含まれますが、どちらか一方が省略できます。アクションの目的は、パターンにマッチするものが見つかった場合に行う処理をawkに伝えることです。したがって、プログラムの全体は、おおよそ次のようになります。
[pattern] [{ action }]
[pattern] [{ action }]
...
function name (args) { ... }
...
アクションを構成するのは、カーリーブレース(`{'と`}')で囲まれた、1つ以上のawkの文です。各文には処理すべき内容を1つ指定します。文はニューラインかセミコロンで区切られます。
アクションの前後のカーリーブレースは、アクションに文が1つしかない場合でも、文がまったくない場合でも付けなければなりません。ただし、アクション全体を省略する場合は、カーリーブレースをとってください(アクションが省略された場合は`{ print $0 }'と同じです)。
awkでサポートされている文の種類を以下に示します。
awkプログラムの制御の流れを指定します。awk言語には、特別な制御構造と、Cライクな制御構造(if、for、whileなど)が提供されています(see section アクション:制御文)。
if、while、do、またはfor文の本体に入れるために使います。
getline関数(see section getlineでの明示的な入力)やnext文(see section next文)を使います。
printとprintf(See section 出力の表示)。
delete文)。