AWK:比较两个文件,匹配字段1和2,从file2获取值并添加到field1的最后一个字段

时间:2018-04-12 20:40:42

标签: awk

我想比较两个文件的前两个字段。如果匹配,请从文件2中取第3个字段并将其添加到文件1的最后一个字段。转换使用文件比较时的基本代码会很好。

awk 'NR==FNR{c[$1$2]++;next};c[$1$2] > 0' 

文件1

NODE1   INTERFACE1  515
NODE1   INTERFACE2  511
NODE2   INTERFACE1  261
NODE2   INTERFACE2  51
NODE3   INTERFACE1  725
NODE3   INTERFACE2  611

文件2

NODE1   INTERFACE1  616
NODE1   INTERFACE2  15
NODE2   INTERFACE1  61
NODE2   INTERFACE2  788
NODE3   INTERFACE1  155
NODE3   INTERFACE2  725

新文件

NODE1   INTERFACE1  515 616
NODE1   INTERFACE2  511 15
NODE2   INTERFACE1  261 61
NODE2   INTERFACE2  51  788
NODE3   INTERFACE1  725 155
NODE3   INTERFACE1  611 725

1 个答案:

答案 0 :(得分:1)

$ awk 'NR==FNR {c[$1,$2]=$3; next} 
               {print $0, (($1,$2) in c?c[$1,$2]:"no_match")}' file1 file2