如何检查两个文件之间的匹配
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
我有两个文本文件,每列有 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