如何检查两个文件之间的匹配

How to check matches between two files

我有两个文本文件,每列有 2 列,每列都有制表符,我想找到它们之间的匹配项。对于我要检查的信息,这些文件的列顺序相反。

文件 1:

B.1      Av1
Q7       G3
Q9       S4

文件 2:

Av1     B.1
G3      Q7      
S8      Q9

输出应该是:

B.1      Av1     match
Q7       G3      match
Q9       S4      no match

我知道我可以更改文件 2 中列的顺序,然后使用 diff 或 awk 将它们与文件 1 进行比较,但我想知道是否有更简单的方法来比较我不需要的文件更改列位置。

您可以在不更改列顺序的情况下使用 awk:

$ awk 'NR==FNR {a[]; next} {printf "%s\t%s\n", [=10=],  in a ? "match" : "no match"}' file2 file1
B.1      Av1    match
Q7       G3     match
Q9       S4     no match