两个文件, 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相似,,按数字排序