找出两个文件相同或不同的内容
在Linux 系统查找中要找出两个文件相同或不同的内容,可以借助awk 的命令来实现。
找出文件2中不同的值
awk 'NR==FNR{a[$0]}NR>FNR{ if(!($0 in a)) print $0}' file1 file2
找出两文件中相同的值
awk 'NR==FNR{a[$0]}NR>FNR{ if($0 in a) print $0}' file1 file2
以上命令可以结合awk 的其他参数一起使用比如 -F等。 按分隔符分割之后,$0可以换成你想要的字段。
NR 和 FNR 的意义:
NR和FNR都表示打开文件所读取的行数,但是二者的区别是:NR会一直向上累加,FNR 每打开一个新文件 该值就会从0开始重制。
比如,filename1 filename2 没别函数的数据是10行,20行。执行完命令后,NR值为30,FNR为后打开的文件行数。