2013-12-19 87 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'来解决这个问题来扩展你的答案。 –