1.指定多个分隔符,这几个分隔符同时起作用
例:以空格和逗点为分隔符
2.key数组法,用于处理二维数据
例:我上篇日志中那个老大的命令
awk
'NR==FNR{key=$1" "$2" "$3;a[key]=$4}NR>FNR{print $0,a[$1" "$2" "$4]/1000000}'
a b
当NR==FNR的时候,把数据存储在数组a[key]中,方便后面使用。
3.NR和FNR的用法,用于处理多个文件
PS:NR——指到目前为止的记录数;FNR——当前文件的记录数,一个新的文件则FNR重新从1开始计数。
还是上面的例子,处理a和b两个文件,先从a取得数组a,再和b处理得到所需要的结果。
4.awk的范围模板,匹配从第一个模板地N次出现和第二个模板地N次出现之间的所有行(N要对应)。
例:
5.awk命令内部的重定向
awk 可使用shell的重定向符(">" or ">>")进行重定向输出。
例:$ awk '$1 = 100 {print $1 > "output_file" }' test
上式表示如果第一个域的值等于100,则把它输出到output_file中。也可以用>>来重定向输出,但不清空文件,只做追加操作。