次のコマンドでは、入力ファイル`BBS-list'の中から文字列`foo'を検索する簡単なawkプログラムが実行されています。
awk '/foo/ { print $0 }' BBS-list
`foo'を含む行が見つかった時点で、その行を表示します。というのは、`print $0'が現在行を意味するからです(単に`print'としても同様の意味になります。したがって、代わりにこれを使っても良いわけです)。
実際のawkプログラムの中で、文字列`foo'がスラッシュ`/'で囲まれているのに気付きましたか? このスラッシュは、`foo'が検索するパターンであることを示しています。このタイプのパターンを正規表現といいます。これについての詳細は後述します(see section パターンとしての正規表現)。awkプログラムを囲んでいる単引用符は、シェルがawkプログラムの文字をシェルの特殊文字と解釈しないようにするためのものです。
このプログラムを実行すると、次のように表示されます。
fooey 555-1234 2400/1200/300 B foot 555-6699 1200/300 B macfoo 555-6480 1200/300 A sabafoo 555-2127 1200/300 C
awkのルールでは、パターンとアクションのどちらでも省略できますが、両方を省略することはできません。パターンを省略した場合、アクションはすべての入力行に対して実行されます。アクションを省略した場合、デフォルトのアクションにより、パターンにマッチするすべての行が表示されます。
したがって、上記の例でアクション(print文とカーリーブレース)を省略できたわけです。この場合も結果は同じになります。つまり、パターン`foo'にマッチするすべての行が表示されます。比較のために、カーリーブレースは残したままprint文を省略すると、空アクションが実行され、その結果何も起こらないことになります。つまり、1行も表示されません。