如果文件1中的列A等于文件2中的列B,则打印行

Lyn*_*sey 2 linux awk

我有两个文件,文件1看起来像:

rs12126768  T   0.0252778071842686
rs908742    A   -0.0175531592475892
rs3107147   A   0.0253753063312283
rs3128309   A   0.0284902703996274
rs16824948  T   0.0696193418800571
rs2643888   A   0.0452601314048646
rs3795272   T   -0.0244976316004002
rs2840531   T   -0.0438473997802763
rs10910060  A   0.0364283566135514
rs1129332   T   -0.0274739770007551
Run Code Online (Sandbox Code Playgroud)

文件2看起来像:

1   rs908742    0   2033256
1   rs3795272   0   2284195
1   rs2840531   0   2286408
1   rs1129332   0   2336210
1   rs7512269   0   2418625
1   rs2247308   0   2445406
1   rs1980789   0   2455863
1   rs3122922   0   2456203
1   rs4648453   0   3025712
1   rs6424069   0   3147030
Run Code Online (Sandbox Code Playgroud)

如果文件1中的$ 1出现在文件2的$ 2中,我希望它打印该行.所以期望的输出将是:

rs908742    A   -0.0175531592475892
rs3795272   T   -0.0244976316004002
rs2840531   T   -0.0438473997802763
rs1129332   T   -0.0274739770007551
Run Code Online (Sandbox Code Playgroud)

预先感谢您的任何帮助.

Ken*_*ent 7

试试这个单行:

awk 'NR==FNR{a[$2];next}$1 in a' file2 file1
Run Code Online (Sandbox Code Playgroud)