パターンは条件を表す。すなわち,入力した行が特定の条件を満たすときにのみ,対応するアクションが実行される。
最もよく使われるパターンは,「空」のパターンである。空のパターンは常に成り立つので,入力された行に対して常にアクションが実行される。例としては,
のようなものが挙げられる。この指示は,「入力された行を全て print する」ことを意味する。{ print $0 }
条件は様々なものがあるが,
のように,「入力された行にちょうど 5 つのフィールドがある(NF == 5)とか,NF == 5 { print $0 }
のように,「入力された行の長さ(文字数)が 80 より長い(length($0) > 80)とか,length($0) > 80 { print $0 }
のように,「入力された行に string という文字列が含まれる」($0 ~ /string/)のように指定できる。$0 ~ /string/ { print $0 }
パターンにはその他特別な 2 つのパターンがある。
一つは BEGIN パターンである。これに対するアクションは,入力ファイルを読む前に 1 度だけ実行される。例えば,
というのは完全な AWK スクリプトであり,画面に Hello, world! と表示して,終了する(入力ファイルは読まない)。BEGIN { print "Hello, world!" }
もう一つは END パターンである。これに対するアクションは,(もし入力ファイルがある場合には)入力ファイルを全部読んだ後に一度だけ実行される。例えば,
は,完全な AWK スクリプトであり,画面に Good-bye, world! と表示して,終了する(入力ファイルは読まない)。END { print "Good-bye, world!" }