1,常量
ARGC:命令行参数个数
包括awk本身命令,但awk的自带option不算在内。
ARGV:命令行参数数组
ARGV[0]是awk本身,其他依次提取就好。
$ awk -F ' ' 'BEGIN {print ARGC, ARGV[0]}' a b c d 5 awk
域:表示一个记录里面的内容。
FS:域输入分割符,默认是空格,可以用-F指定
OFS:域输出分割符,
$ echo "one,two,three,four" | awk -F "," '{OFS="...";print $1,$2,$3}' one...two...three
$ echo "one,two,three,four" | awk -F "," '{OFS="...";print $1$2$3}'
onetwothree
$ echo "one,two,three,four" | awk -F "," '{print $1,$2,$3}'
one two three
记录:一个输出里面的内容
RS:记录输入分隔符
ORS:记录输出分隔符
$ ls -la | awk 'ORS=".."{print $1}' total..drwxr-xr-x..drwxr-xr-x+..
NF:当前记录中域数
$ echo "one two three four" | awk '{print NF}'
4
NR:当前为止记录数
FNS:当前文件中记录数
$ awk '{print $1, NR, FNR}' a b a 1 1 b 2 2 c 3 3 4 4 e 5 1 f 6 2 g 7 3 8 4
你可以认为F代表域,就一条记录内的内容,R代表记录,O代表输出。