awkスクリプトはコマンドで構成されています。各コマンドには、パターンとアクションがあります。
pattern1 { action1 }
pattern2 { action2 }
入力の各行について、awkは各パターンをテストし、パターンがtrueの場合に対応するアクションを実行します。
パターンは省略できます。その場合、パターンは常にtrueと見なされ、各行に対してアクションが実行されます。同様に、アクションは省略できます。その場合、アクションはprint
;と見なされます。これにより、awkを使用して、行を変更せずに行を簡単に選択できます。
この構造を念頭に置いて、与えられた例を解釈することができます。最初のアクションは、すべての行に適用される単一のアクションです。しかし、アクションはうまく形成されていません---外側のブラケットを削除すると、それは明確なパターンとアクションになり、どちらも正しく構築されます。
2番目の例もすべての行に適用されます。行から最初の2つの(空白で区切られた)フィールドを取得し、それらを数値として追加して、結果を出力します。外側のブラケットを削除すると、対応するアクションのない3つのパターンと、パターンのないアクションが得られます。したがって、パターン---割り当ての値であり、通常はtrue---には、print
通常呼び出される暗黙的なものがあります。同様に、アクションは常に呼び出され、の値を出力しno
ます。