1

我有两个包含数千行的文本文件。文件 A 只有一列 (ID)

#ID
rs111
rs222
rs333
rs444

文件 B 如下所示:

#CHROM POS ID REF ALT QUAL ......

22 111 rs111 T C . ....

22 222 rs222 A G ....

22 333 rs666 G T ...

22 444 rs777 A A ..

这是我想要的输出:

#CHROM POS ID REF ALT QUAL ......

22 111 rs111 T C . ....

22 222 rs222 A G ....

即我只想从文件 B 中提取那些 ID 与文件 A 中给出的 ID 匹配的行。我怎样才能做到这一点?谢谢

4

3 回答 3

2

你可以使用这个 awk:

awk 'FNR==NR{a[$1];next} ($3 in a)' fileA fileB
22 111 rs111 T C . ....
22 222 rs222 A G ....
于 2014-01-14T18:28:25.097 回答
0

请参阅 biostars 中的“查询 dbSNP VCF 文件”:http: //www.biostars.org/p/88799/http://www.biostars.org/p/12707/

于 2014-01-14T20:26:42.500 回答
0

尽管awkanubhava 发布的解决方案更优雅,但您可能会逃脱:

$ grep -f filea fileb 
22 111 rs111 T C . ....
22 222 rs222 A G ....
于 2014-01-14T18:30:48.107 回答