awk

テキスト処理

書き方

awk '{print $1}' [file]

行を欄に分けて小さなプログラムを走らせます。$0 は行全体、$1 が最初の欄で、既定の区切りは空白一つではなく連続する空白です。

よく使うオプション

オプション意味
-FSet the field separator, as in -F,
-vPass a shell value in as an awk variable
-fRead the program from a file
$0The whole line; $1 is the first field, NF the field count

awk -F, '{print $2}' data.csv

Second column of a comma-separated file.

awk '$3 > 100' access.log

Only the rows whose third field exceeds 100.

awk '{s+=$1} END {print s}' nums.txt

Adds up the first column.

パイプでつないで使うのが本来の形です。ひとつで全部やるより、三つつないだ方が短くなります。

読み方

  • 角括弧 [ ] は省いてよい部分です。
  • 三点 … は複数並べられるという意味です。
  • オプションは大文字小文字を区別します — -r と -R が別物のコマンドもあります。

よくある質問

Q. awk は何をしますか。

行を欄に分けて小さなプログラムを走らせます。$0 は行全体、$1 が最初の欄で、既定の区切りは空白一つではなく連続する空白です。

Q. どう打ちますか。

awk '{print $1}' [file] — 角括弧は省いてよい部分です。

Q. よく使うオプションはいくつですか。

ここにまとめたのは4個です。全部は man awk にあります。このコマンドはテキスト処理の仲間です。

関連するコマンド

man ページ: man awk