$0 行全て
$1,$2... 空白、タブ区切りの「欄」
パターン {アクション}の組み合わせ
基本入力行1行ずつ走査する、パターンに適合する行に対してアクションを行う
パターン、アクションどちらか省略できる
$ awk 'プログラム' 入力ファイル群
$ awk -f programfile 入力ファイル群
数と文字列 二つの型のみ
{ pring $1,$3} 特定の欄の印字
1行読みその行を欄に分解する
NF 欄の数
{print NF, $1, $NF} 欄数、最初と最後の欄を印字
NR 行番号
論理演算
&& || !
制御文
if else while for
配列
名前[添字] = 123
コメント
#行末まで
パターン
入力を読み込む前に実行
複数記述できる
BEGIN
すべての入力を読み終えた後実行
複数記述できる
END
比較演算子
比較は文字列にも使える
<
<=
==
!=
>=
>
~文字列照合
!~文字列照合
/正規表現/
式 ~ /正規表現/
式 !~ /正規表現/
正規表現
超文字
\ ^ $ . [] | () * + ?
エスケープ・シーケンス
\b
\f
\n
\r
\t
\ddd 8進数
\c cそのもの
範囲指定
NR==10, NR==20
アクション
print 式の並び
printf(書式, 式の並び)
if (式) 文
if (式) 文 else 文
while (式) 文
for (式; 式; 式) 文
for (変数 in 配列) 文
do 文 while (式)
break
continue
next
exit
exit 式
{ 文の並び }