AWK:比较两个文件,匹配字段1和字段2,从文件2中获取值并添加到字段1的最后一个字段
我想比较两个文件的前两个字段。如果匹配,则从文件2中选取第3个字段,并将其添加到文件1的最后一个字段。在使用文件比较时,最好转换我的基本代码AWK:比较两个文件,匹配字段1和字段2,从文件2中获取值并添加到字段1的最后一个字段,awk,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 I
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
如果某些行不匹配?如果不匹配,则在最后一个字段中打印“不匹配”。
$ awk 'NR==FNR {c[$1,$2]=$3; next}
{print $0, (($1,$2) in c?c[$1,$2]:"no_match")}' file1 file2