awk学习点滴

时间:2023-12-12 12:13:50

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代表输出。