1
0
Fork 0
mirror of https://github.com/tldr-pages/tldr.git synced 2025-04-23 14:02:08 +02:00
tldr/pages.ja/common/awk.md
2025-02-07 08:15:51 +02:00

36 lines
1.5 KiB
Markdown

# awk
> ファイル操作のための汎用プログラミング言語。
> もっと詳しく: <https://github.com/onetrueawk/awk>。
- スペースで区切られたファイルの、5列目(別名フィールド)を表示する:
`awk '{print $5}' {{path/to/file}}`
- スペースで区切られたファイル中の、"foo"を含む行の2列目を表示する:
`awk '/{{foo}}/ {print $2}' {{path/to/file}}`
- ファイルの各行の最後の列を、フィールドの区切り文字として(スペースの代わりに)カンマを使って表示する:
`awk -F ',' '{print $NF}' {{path/to/file}}`
- ファイルの最初の列の値を合計し、合計を表示する:
`awk '{s+=$1} END {print s}' {{path/to/file}}`
- 1行目から3行目までを表示する:
`awk 'NR%3==1' {{path/to/file}}`
- 条件によって異なる値を表示する:
`awk '{if ($1 == "foo") print "Exact match foo"; else if ($1 ~ "bar") print "Partial match bar"; else print "Baz"}' {{path/to/file}}`
- 10列目の値が、最小値と最大値の間にある行を、全て表示する:
`awk '($10 >= {{min_value}} && $10 <= {{max_value}})'`
- UID>=1000であるユーザーの表を、コロンを区切り文字として、ヘッダと書式付き出力で表示する(`%-20s` は左寄せ文字列20文字を意味する。`%6s` は右寄せ文字列6文字を意味する。):
`awk 'BEGIN {FS=":";printf "%-20s %6s %25s\n", "Name", "UID", "Shell"} $4 >= 1000 {printf "%-20s %6d %25s\n", $1, $4, $7}' /etc/passwd`