実行方法
awk 'パターン{アクション}' 処理ファイル名
パターン
- BEGIN
ファイルを読む前に実行するブロック
2. ENDファイルを読み終わったら実行するブロック
3. パターン+アクション特定のパターン(または条件式)にマッチする場合に、アクションを実行。
特殊変数
表記 | 意味 |
---|---|
$0 | 1行(レコード)。レコード単位はRSで変更可能。 |
$1 ~ $NF | 一行をスペースまたはタブで分解し、それぞれの項目を先頭から$1,$2の順で割り当てる。最後の要素は$NFに格納。$(NF-n)で後ろからn番目。フィールド単位はFSで変更可能。 |
NR, FNR | NRには現在処理している通し行数が格納。FNRにはファイル単位での処理が格納。 |
RS(レコードセパレータ)変更
# 段落 (空行) 単位をレコードとして $0 を表示
BEGIN { RS = "" } { print $0 }
FS(フィールドセパレータ)変更
# フィールド分割を "," (カンマ) 区切り (CSV) にして $1 を表示
BEGIN { FS = "," }{ print $1 }
if文
基本形
# 偶数行は普通に出力、奇数行はNG
awk '{if(FNR%2==0){print FNR : $0}} else {print "NG"}' test.txt
and条件、or条件
and条件 → &&
or条件 → ||
参考にしたサイト
http://www.ie.u-ryukyu.ac.jp/~e085739/awk.quick.all.html
https://it-ojisan.tokyo/awk-if/