次に示す処理を実現するコマンドの組み合わせをリダイレクトやパイプを用いて示しなさい。列目の数値だけを取り出す。含む行だけを取り出す。結果を値の小さい順に並べ換える。結果から重複する行を削除する。結果が何行あるか調べる。結果の先頭部分を表示する。交互に切替えて実行してみなさい。複数のコマンドをセミコロンで区切って実行して、実行の様子を確認しなさい。種類のコマンド列を実行した時の結果の違いを確認しなさい。そのような結果になる理由を説明しなさい。指定した条件(パターンという)を満たす行に対して指定した処理(アクションという)を施す。プログラムはパターンとアクションの組を必要に応じて並べることで記述する。プログラムの一般形は次のようになる。アクションは中括弧で囲む。言語と同じ書き方ができるようになっている。アクションを省略するとパターンに一致したレコードを出力する。分割される各単語を「フィールド」と呼ぶ。実行の仕方の例を次に示す。ファイルに作成しておいて実行時に指定する方法がある。指定しなければ標準入力から読み込む。データファイルが以下のようになっているとする。番目のフィールドを出力するアクションが指定されている。種類の方法で実行できる。結果はすべて同じになる。一般のプログラミング言語と同様に変数を使用できる。プログラム中で必要になった時にいきなり使うことができる。同じ変数に数値や文字列をそのまま代入できる。文字列に関する処理をする時には文字列として解釈される。場合によっては誤動作の原因となるので注意が必要である。変数を完全に分けて使用することが考えられる。以下は変数に数値、文字列を代入する例である。dataダブルクォート(")で囲むと文字列になる。以下はフィールド変数を数値、文字列として比較する例である。data既定義変数としてあらかじめ名前と用途が予約されている「組み込み変数」がいくつかある。各フィールドを参照するための「フィールド変数」がある。使用する機会が多い既定義変数は以下のものである。配列を使用することもできる。パターンの記述パターンには以下の条件が指定できる。最後のレコードを処理した後の処理を指定するためにある。data正規表現とは特定の文字列を指定する条件の記述法(後述)である。式は算術演算や論理演算を組み合わせて表現される。正規表現やアクションで用いる文字列関数を含めることができる。式の表現では以下の演算子が使用できる。言語と同じ表現が使用できる。data正規表現や式は単独で指定する他に、複数を組み合わせて指定することもできる。評価の優先順位がわかり難い場合は必要に応じて括弧を加える。マッチするまでという条件で範囲を指定できる。表現法は異なるがシェルと操作方法で取り上げたファイル名の置換機能と似ている。正規表現はこの機能をより一般化して強化したものといえる。おける正規表現は前後をスラッシュで囲んで表現する。文字の繰り返しや位置などを表す特別な意味を持つ。通常の文字として扱いたい場合は注意が必要である。各メタ文字の機能、正規表現の記述を以下に示す。