2013-12-19 126 views
1

我想知道是否可以幫我這個:僅提取某些行從文件

我有兩個文本文件..每個文件都包含標記ID的列表。爲了簡單起見:文件'A'在單行(行)中有1000個ID和每個ID的信息。文件'B'只有大約200個ID的列表。 有沒有一種方法可以將文件'B'作爲輸入,並從文件'A'中提取數據以僅存在於文件B中的那些ID?

文件:

rs149201999  16050408  T  C 
rs146752890  16050612  C  G 
rs139377059  16050678  C  T 
rs188945759  16050984  C  G 

文件B:

rs2508081 
rs12157537 
rs2334336 
rs11703370 
+0

文件A但僅與文件B中存在的ID – user3108631

回答

2

使一些假設有關文件

awk 'NR==FNR {id[$1]=1; next} $1 in id' fileB fileA 

我假設id爲FILEB唯一的東西,該ID是文件的第一個字段A

或者,join <(sort fileA) <(sort fileB)

+0

是的。 ID是文件B中的唯一字段,並且文件A – user3108631

+0

中的第一個字段(4個字段中的第一個字段)謝謝。加入工作 – user3108631

+0

@glenn jackman你能解釋你在第一個答案中做了什麼嗎?你如何使用awk來比較兩個文件? – user3108631

-1

您想使用Unix連接工具。

+2

Stack Overflow標準不是一個好的答案。你應該通過解釋如何使用'join'來解決這個問題來擴展你的答案。 –