Awk 如何使用linux提取multple文件中不匹配的列

Awk 如何使用linux提取multple文件中不匹配的列,awk,grep,Awk,Grep,我有3个文件。我希望所有3列中的所有字符串都不匹配。我已尝试 grep -Fvf file2 file1 awk 'NR==FNR{c[$2]++;next};c[$2] == 0' file1 file2 file3 但是没有成功 文件1 ABC 1 Town ABC 2 Rural ABC 3 Town ABC 4 City ABC 5 Urban ABC 6 Town 文件2 文件3 输出 File1 File2 File3 A

我有3个文件。我希望所有3列中的所有字符串都不匹配。我已尝试

grep -Fvf file2 file1

awk 'NR==FNR{c[$2]++;next};c[$2] == 0' file1 file2 file3
但是没有成功

文件1

ABC  1  Town
ABC  2  Rural
ABC  3  Town
ABC  4  City
ABC  5  Urban
ABC  6  Town
文件2

文件3

输出

File1         File2         File3
ABC  3  Town  ABC  3  City  ABC  3  City
ABC  6  Town  ABC  6  Urban ABC  6  Town

您可以结合使用
粘贴
awk

$ paste file1 file2 file3 | awk '$3!=$6 || $3!=$9'
ABC  3  Town    ABC  3  City    ABC  3  City
ABC  6  Town    ABC  6  Urban   ABC  6  Town
粘贴
将两个文件连接在一起(通过添加列)


awk
只是检查想要的单词(每个文件的第三个)是否不同,在这种情况下,
awk
打印行。

定义不匹配?不匹配位置指三个文件中,例如文件1第2列中的第3个位置与文件2和文件3第2列中的第3个位置不匹配。因此,这是所有三列中不匹配的。我有3个不同的文件。啊!3美元=$6 || $3!=$9 || $6!=$9'将处理一个由空格或制表符分隔的文件。请查看将两个文件聚合在一起的
paste
命令。++ve提供了很好的解决方案。感谢Oliv和Sundeep
File1         File2         File3
ABC  3  Town  ABC  3  City  ABC  3  City
ABC  6  Town  ABC  6  Urban ABC  6  Town
$ paste file1 file2 file3 | awk '$3!=$6 || $3!=$9'
ABC  3  Town    ABC  3  City    ABC  3  City
ABC  6  Town    ABC  6  Urban   ABC  6  Town