1,常量
ARGC:命令行参数个数
包括awk本身命令,但awk的自带option不算在内。
ARGV:命令行参数数组
ARGV[0]是awk本身,其他依次提取就好。
$ awk -F ' ' 'BEGIN {print ARGC, ARGV[0]}' a b c d
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
b
c e
f
g
你可以认为F代表域,就一条记录内的内容,R代表记录,O代表输出。