AWK
正規表現や演算子をパターンに使用でき、アクションには{ ... }内に具体的な処理を記述する。 AWK has various system variables: FS and OFS are the input and output field-separators (default is blank); RS and ORS are the input and output record separators (default is newline): NR is the number of the current record; NF is the number of fields in the current record; $0 is the entire current record; $n (n>0) is the nth field in the current record.
それぞれ、FSは入力、OFSは出力のフィールド区切り文字です(既定は改行文字です)。NRは現在のレコードの列数を指していて、$0は現在のレコード全体を、$n (n>0)はn番目のレコードの列を指します。 code:awk
yes | head -n3 | awk '{ print NR, NF, $0 }'
# 1 1 y
# 2 1 y
# 3 1 y
FSを設定したい場合 -F オプションを使ってもOK。
code:awk
echo 'one,two,three,four,five' | awk -F, '{ print FS }'
# ","
Output Field Separatorを:に設定するとその文字で区切られる。
code:awk
echo 'one,two,three,four,five' | awk 'BEGIN { FS = ","; OFS = ":" } { print $1, $2, $3 }'
# one:two:three
パターン
/regexp/
論理式 $3 != $4
パターンマッチ式$1 !~ /regexp/
BEGIN
FSやRSをリセットしたいときに使う