根据第一列比较两个文件并打印整行

时间:2015-07-15 09:08:23

标签: awk

我会以一个例子问我的问题。我有2个文件:

File1中 -

TR100013|c0_g1
TR100013|c0_g2
TR10009|c0_g1
TR10009|c0_g2

文件2 -

TR100013|c0_g1  AT1G01360.1 78.79   165 35  0   301 795 19  183 2E-089  272
TR100013|c0_g2  AT1G01360.1 78.79   165 35  0   301 795 19  183 2E-089  272
TR10009|c0_g1   AT1G16240.3 77.42   62  14  0   261 76  113 174 4E-025  95.9
TR10009|c0_g2   AT1G16240.2 69.17   120 37  0   1007    648 113 232 2E-050  171
TR29295|c0_g1   AT1G22540.1 69.19   172 53  2   6   521 34  200 2E-053  180
TR49005|c5_g1   AT5G24530.1 69.21   302 90  1   909 13  39  340 5E-157  446

预期输出:

TR100013|c0_g1  AT1G01360.1 78.79   165 35  0   301 795 19  183 2E-089  272
TR100013|c0_g2  AT1G01360.1 78.79   165 35  0   301 795 19  183 2E-089  272
TR10009|c0_g1   AT1G16240.3 77.42   62  14  0   261 76  113 174 4E-025  95.9
TR10009|c0_g2   AT1G16240.2 69.17   120 37  0   1007    648 113 232 2E-050  171

我想比较两个文件。如果两个文件中的第一列相同,则打印第二个文件的整行,这两个文件中都是通用的。

1 个答案:

答案 0 :(得分:2)

使用awk

 awk 'NR==FNR{a[$1]++;next};a[$1]' file1 file2

grep也可以这样做:

grep -wf file1 file2

-w仅匹配整个单词 -f指定带有模式的文件。

相关问题