2

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

我有一个巨大的文件 - 每行代表来自不同个人的数据。我想要做的是 grep (或提取)某些个人的信息(行) - 我不想继续单独 grep 个人然后将它们全部附加到最后但我很好奇是否存在循环我可以通过证明带有 ID(即 ID001、ID002... ID100)的文本文件或每个人独有的变量来进行设置。我对编程相当陌生,所以我不确定我应该在谷歌上搜索/寻找什么来获得答案——但这在 Shell 中是否可行?

抱歉,这可能是一个简单的问题。

谢谢!

编辑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 的个人进行特定分析,但仅在提供的列表中的家庭上运行程序?

希望这是有道理的。

4

1 回答 1

1

这就是你所需要的:

grep -wFf FAMID.txt data.txt

在哪里:

  • -f FAMID.txt告诉 grep 从文件中读取模式
  • -F告诉 grep 模式是纯字符串,因此它可以选择合适的匹配引擎
  • -w告诉 grep 只匹配构成整个单词的模式(所以如果你不小心在模式文件中得到“FAM”,你就不会匹配数据文件的每一行)
于 2013-08-28T20:18:47.620 回答