将一个文件中的awk搜索模式与另一个文件进行比较,并打印两个文件的列

将一个文件中的awk搜索模式与另一个文件进行比较,并打印两个文件的列,awk,Awk,我试图比较文件1的第二列,并在文件2的第二列中找到此模式,以获得第1列中文件1的id的输出,并打印文件2的第2列 我假设在我的文件1和文件2中有多行具有相同的id awk能做到吗?还是其他工具? 谢谢你的帮助 文件1 TRINITY_DN2107 cl14615 TRINITY_DN2107 cl10509 TRINITY_DN2107 cl01287 文件2 cl14615 pfam00932 cl14615 pfam08214 cl10509 pfam00651 cl01287 pfam1

我试图比较文件1的第二列,并在文件2的第二列中找到此模式,以获得第1列中文件1的id的输出,并打印文件2的第2列 我假设在我的文件1和文件2中有多行具有相同的id awk能做到吗?还是其他工具? 谢谢你的帮助

文件1

TRINITY_DN2107 cl14615
TRINITY_DN2107 cl10509
TRINITY_DN2107 cl01287
文件2

cl14615 pfam00932
cl14615 pfam08214
cl10509 pfam00651
cl01287 pfam13027
cl01287 pfam13340
所需文件

TRINITY_DN2107 pfam00932
TRINITY_DN2107 pfam08214
TRINITY_DN2107 pfam00651
TRINITY_DN2107 pfam13027
TRINITY_DN2107 pfam13340
这应该起作用:

awk -v f=file_1 '
    BEGIN{while (getline < f) x[$2]=$1}
    {print x[$1], $2}' file_2

对正如你所说,非常感谢,因为我有同样的价值观
awk 'NR==FNR{h[$2]=$1; next}{print h[$1], $2}' file_1 file_2