如何使用AWK实现两个文件对比

这篇文章主要为大家展示了“如何使用AWK实现两个文件对比”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用AWK实现两个文件对比”这篇文章吧。

两个文件, test11.txt 与test22.txt匹配 ,打印出匹配成功test22.txt 的内容

root@ubuntu:/tmp# cat test11.txt 
aa
bb
cc
2
d
a
xd
rr
aa
ff
root@ubuntu:/tmp# cat test22.txt 
aa  12132
efea  90
ifd a
bb  44
cc  123
2  432
d  432
a  fda
xd  32
rr   fe
aa   r32
ff  22
fdsail 00
hell 001

awk处理:

root@ubuntu:/tmp# awk  'NR==FNR{a[$1]=1}NR>FNR{if($1 in a)print $0}'  test11.txt  test22.txt  > result.txt        
root@ubuntu:/tmp# cat result.txt 
aa  12132
bb  44
cc  123
2  432
d  432
a  fda
xd  32
rr   fe
aa   r32
ff  22

注释:NR 当前文件的行、 FNR 读取的记录数。。读取第一个文件时NR=FNR

当读取第二个文件时,FNR在第一个文件的基础上继续计数。NR归零重新记录。

NR==FNR时,处理第一个文件

NR > FNR时,处理第二个文件

统计日志中每分钟的日志条数:

cat  access.log |awk -F ":" '{++S[$3]} END {for(i in S) print i"\t"S[i] }' | sort -k1g

$3 位日志记录中时间 的分钟。

-k1g     g参数与n相似,,按数字排序

以上是“如何使用AWK实现两个文件对比”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!