AWK
字段(域)与记录
$0 整行,一个记录
$1 第一个字段
$2 第二个字段
...
$NF 最后一个字段
以 FS 区分字段(域,列)
以 RS 区分记录(行)
模式匹配
* 正则表达式 *
!~ 不匹配
awk "$1/^a/{print NR,$1,$NF}" test.txt
# 匹配 test.txt 文件的第一行的中的 以a开头的所有字段
$1~/正则开始/,$3~/正则结束/
awk常用内置变量
RS 区分记录的分隔符
FS 区分字段(域,列)
NF 当前一共有多少列
$NF($n) 最后一个字段
NR 当前处理的行号
ORS 输出时候的分隔符
OFS 输出字段分隔符
FNR 当前文件的读入记录号
BEGIN 和 END
BEGIN 在读取文件之前执行(初始化变量)
END 在处理完文件后执行(统计用)
awk 'BEGIN{print "hello wolrd!"}'
awk '$0END{print "end!"}'
awk数组
for ( key in array )
格式
awk [ options ] 'pattern {action}' file