2014-01-14 70 views
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相匹配。我該如何實現?感謝

回答

2

您可以使用此AWK:

awk 'FNR==NR{a[$1];next} ($3 in a)' fileA fileB 
22 111 rs111 T C . .... 
22 222 rs222 A G .... 
+0

不客氣,很高興它解決了。 – anubhava

0

雖然awk解決方案張貼anubhava更優雅,你也許可以僥倖逃脫:

$ grep -f filea fileb 
22 111 rs111 T C . .... 
22 222 rs222 A G .... 
+0

謝謝。你的回答也起作用。 – user3108631