先是转载的部分, 给出大致的解释:
awk可以使用自身变量NR和FNR来处理多个文件。
NR:表示awk开始执行程序后所读取的数据行数。
FNR:awk当前读取的记录数,其变量值小于等于NR(比如当读取第二个文件时,FNR是从0开始重新计数,而NR不会)。
NR==FNR:用于在读取两个或两个以上的文件时,判断是不是在读取第一个文件。
---------------------
作者:imzoer
来源:CSDN
原文:https://blog.csdn.net/imzoer/article/details/8734474
以下是自己实验的部分:
[root@nfjd-model-240 common]$ cat test1
a aaaaaaaaa
b bbbbbbbbb
c ccccccccc
d ddddddddd
e eeeeeeeee
f fffffffff
g ggggggggg
[root@nfjd-model-240 common]$ cat test1
f fffffffff
g ggggggggg
h hhhhhhhhh
j jjjjjjjjj
[root@nfjd-model-240 common]$ awk -F '\t' 'NR==FNR{a[$1$2]==1}NR>FNR{if(!($1$2 in a))print $0}' test1 test2
h hhhhhhhhh
j jjjjjjjjj
以上第三部分就打印出了test2不在test1中的内容。