``Effective AWK Programming'' には
awkの基本的な機能は、ファイルからあるパターンを含んでいる行(もしくは他のテキストの構成単位)を検索することである。 ある行がパターンの一つにマッチしたとき、awkは特定のアクションをその行に対して実行する。 awkはこのようにして入力ファイルの最後の行までそれぞれの行を処理し続ける。と記述されている。 ここにあるとおり, 指定したパターン (pattern) に一致する行に対してのみ, awk に動作 (action) を行わせるには, awk への「プログラム命令」を
pattern {action}の形式で与えればよい 3。 例えば,
gawk -F+ '/ame/ {print $1}' /pub/db_a/data/75.60k.vocab.romaji
は,入力行に ame を含む行の第1フィールドのみを出力する。
すなわち,ある文字列を含む行のみを awk で処理したければ,
pattern として「/文字列/」を指定すればよい。
これは
grep ame /pub/db_a/data/75.60k.vocab.romaji | gawk -F+ '{print $1}'
を実行するのと同じ結果を出力する。
また, pattern を「/文字列/」とする代わりに「/正規表現/」とすれば, 正規表現による行の指定も可能である。 正規表現については,前回のテキストを参照のこと。
次の例がどのような結果を出力するかを考えて,実行してみよう。
gawk -F+ '/ame/ {print $0}' /pub/db_a/data/75.60k.vocab.romaji
gawk -F+ '/n..kuni/ {print $0}' /pub/db_a/data/75.60k.vocab.romaji