コマンド | メモ | |
---|---|---|
基本 | awk 'パターン { print $0 }' test.txt | |
cat test.txt | awk 'パターン { print $0 }' | ||
列の絞込 | awk '{print $1 $2}' test.txt | |
awk '{print $0}' test.txt | $0は行まるごと | |
awk '{print $NF}' test.txt | 一番後ろの列 | |
awk '{print $(NF-1)}' test.txt | 後ろから2番目 | |
行の絞込 | awk '$1 == "a"' test.txt | {print xxx}を省略するとレコード丸ごと |
awk '$1 != "a"' test.txt | ||
awk '$2 ~/^1/"' test.txt | 正規表現(2列目が1から始まる行を抽出) | |
区切り文字変更 | awk -F, '{print $1}' test.txt | デフォルトはスペース |
注意事項
1. ダブルクォートはダメ
awk "{print $0}" # これはだめ
メモ
毎回ぐぐるのが面倒なので、最低限AWKで暗記しようと思ったことをまとめました。
普段AWKでやりたくなることの80%の要件が満たせればいいという感じです。
パレートの法則を持ち出すまでもなく、だいたいできるようになるまではわりあい簡単ですが、完璧を求めようとすると大変なので、このくらいでいいのです。
最小、最大の求め方は「awk "{print $2}" | sort | head -n 1」 等で十分。
合計、平均なんかは諦めて毎回ぐぐりましょう。