所有awk里的action都是用单引号
比如是:
awk '{print $1}' file.txt
而不是:
awk "{print $1}" file.txt
使用-F指定列分割符
比如使用tab(\t)作为分隔符:
awk -F"\t" '{if ($1 == 0) print $2;}' file.txt
awk里使用字典
有个文件file.txt内容如下:
a 1 b 2 a 3 b 3
分别统计a、b的和(稍微改改就可以变成统计出现次数了):
awk '{a[$1]+=$2}END{for(i in a) print i,a[i]}' file.txt
awk中使用环境变量
打印file.txt每一行,在前面加上环境变量SHELL的值,并用tab分割:
awk '{OFS="\t";print ENVIRON["SHELL"], $0;}' file.txt
其它有用的小技巧
# 打印最后一行: awk '{print $NF}' filename # 打印倒数第二行: awk '{print $(NF-1)}' filename # 多个字符作为分隔符,比如将等号、逗号和空格都作为分隔符: awk -F '[=, ]' '{print $3, $5}' input.txt