比较两个文件,每个文件中的第三列都匹配,但是第二个fith列使用awk不匹配

亚曼

说file1是:

a b c d f
aa bb cc dd ef
ab bc dg ef ge
ao ob dy ed co

和file2是:

a b c d e 
aa bb cc dd ee
ab bc de ef ge
ao ob dy ed co

预期输出应为:

a b c d f 
aa bb cc dd ef

这是我尝试过的:

 awk 'NR==FNR{c[$3,$5]++;next};($3 in c[$3]) && !($5 in c[$5]) > 0' file1 file2
卡拉法

这样的东西?

$ awk 'NR==FNR{a[$3]=$0;next} 
       $3 in a{split(a[$3],r); if($5!=r[5])print}' file2 file1

a b c d f
aa bb cc dd ef

检查第5个字段是否不匹配。

我想这可以简化为

$ awk 'NR==FNR{a[$3]=$5;next} $3 in a && a[$3]!=$5' file2 file1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

awk比较2个文件,打印匹配行和不匹配行;第一个文件的第三列和第二个文件的第二列

AWK比较两个文件,如果匹配,则将第二个文件中的新列添加到第一个文件中

比较两个文件,并根据第一列和第二列从第二个文件获取不匹配的行

比较两个文件并从第二个文件中获取匹配的行

比较两个文件的第一列和第二列,如果匹配则打印第二个文件中的行

在Python中,如何根据一个列中的值比较两个csv文件,并从第一个文件输出与第二个不匹配的记录

Bash比较两个不同的文件并从第二个获取不匹配的行

比较两个文件的第一列,如果第一列匹配,则打印第二个文件的整行

awk-通过匹配列合并两个文件,并将第二个文件的列值附加到该行

比较来自两个不同文件的列并从第一个文件打印记录那些与第二个文件不匹配的列

awk比较2个未排序文件中的2列,并在匹配后返回第二个文件中的特定列

在两个csv文件中匹配一个字符串,但是第二个文件太大,无法读入列表

如何比较两个文件的两列并使用awk打印不匹配的模式

比较两个熊猫列,并返回与第二个元素匹配的第一个的索引

Android:比较两个对象的ArrayList并从第二个ArrayList中查找不匹配的ID

bash - 将一个文件的两列与第二个文件的一列进行比较并打印匹配项

如何匹配两个列表,而只更改每个对中的第二个?

匹配2个csv文件并写入第二个文件的第三个单元格

将文件中的重复数据与第二个文件中的第二列进行匹配

使用Awk在两个文件中匹配五列

如何比较两个文件并打印仅与第一个文件匹配的第二个文件

一个文件中的awk搜索列,以查看它是否与第二个文件中的任何值匹配

比较第一个文件的第一列和第二个文件的第二列并进行匹配

awk查找两个文件中第二个字段之间的差异

在 Excel 中查找第二个和第三个匹配值

awk比较两个文件中的两列,并将调整后的不匹配附加到输出中

如何在两个目录中使用awk进行多个文件搜索,仅从第二个目录中具有匹配字符串的文件中打印记录

如何比较两个文件中的列并打印第一个文件的第一列和第二个文件的第二列以及缺失值NA?

比较两个文本文件,如果第二个文件的行包含第一个文件的两列,则删除该行