从与ID列表匹配的文件中提取行

时间:2013-08-28 17:48:32

标签: shell loops grep extract

希望我在这里有意义......

我有一个巨大的文件 - 每一行代表来自不同个人的数据。我想要做的是为某些个人grep(或提取)信息(线条) - 我不想继续个别地贪图个人然后在最后将它们全部附加在一起但是我很好奇是否有一个循环我可以通过证明具有ID(即ID001,ID002 ... ID100)的文本文件或每个人独有的变量来设置。我对编程很新,所以我不确定我应该谷歌/寻找什么来得到答案 - 但这可能在壳牌?

道歉可能是一个简单的问题。

谢谢!

编辑1:我在这里添加更多信息: 格式可能不同,但基本上该文件是遗传文件,具有以下格式:

FAM001 ID001 A A T T TC T A…… A G
FAM001 ID002 A A T T C C A G…… T C
FAM004 ID003 A A T G T G A A…… A G
.
.
FAM100 ID100 G A C T C G T G…… T G

是否可以设置一个循环,例如,类似于/包含这个:

for f in $( cat ~/FAMID.txt )

使用FAMID.txt:

FAM001
FAM050
FAM087

能够对具有特定FAMID ID的个人进行某种分析,但只在所提供的列表中的家庭上运行该程序吗?

希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

这就是你所需要的:

grep -wFf FAMID.txt data.txt

其中:

  • -f FAMID.txt告诉grep从文件中读取模式
  • -F告诉grep模式是纯字符串,因此可以选择合适的匹配引擎
  • -w告诉grep只匹配构成整个单词的模式(因此,如果你不小心在模式文件中获得“FAM”,则不匹配数据文件的每一行)