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

Unix 如何检查两个文件之间的匹配,unix,awk,match,multiple-columns,Unix,Awk,Match,Multiple Columns,我有两个文本文件,每个文件有两列,每个列都有选项卡,我想找到它们之间的匹配项。这些文件的列顺序与我要检查的信息的顺序相反 文件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中列的顺序,并使用d

我有两个文本文件,每个文件有两列,每个列都有选项卡,我想找到它们之间的匹配项。这些文件的列顺序与我要检查的信息的顺序相反

文件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[$1]; next} {printf "%s\t%s\n", $0, $2 in a ? "match" : "no match"}' file2 file1
B.1      Av1    match
Q7       G3     match
Q9       S4     no match