NR和FNR的探索

先是转载的部分, 给出大致的解释:

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中的内容。

猜你喜欢

转载自blog.csdn.net/yuxeaotao/article/details/86481143
今日推荐