-3

我有两个文件

第一个文件就是这种格式。每行都以唯一的 id 开头(在本例中为 P22465)

P22465    DB   DB; EC.31.1.1; the annexin (annexin) group.

第二个文件是这种格式。每行以(某个数字)@ENTREZGENE 开头

309@ENTREZGENE|ANXA6_HUMAN@SWISSPROT|P08133@SWISSPROT|ANXA6:ANXA6|67 kDa calelectrin

30@ENTREZGENE|THIK_HUMAN@SWISSPROT|P22465@SWISSPROT|ACAA1:ACAA1|EC 2.3.1.16

输出应该是

30@ENTREZGENE|THIK_HUMAN@SWISSPROT|P22465@SWISSPROT|ACAA1:ACAA1|EC 2.3.1.16

它应该与第二个文件中包含唯一 id (P22465) 的行匹配,并将整行复制到新文件中

4

1 回答 1

1

使用bash

fgrep -f <(awk '{print $1}' file1) file2

这使用进程替换 ( <(...))。你也可以这样做:

awk '{print $1}' file1 | fgrep -f - file2

这告诉fgrep“从标准输入中读取要匹配的字符串”(-f -)。我尚未验证这是否有效,但我希望它可以这样做。

您可以使用grep -F代替fgrep(但 Mac OS X 有fgrep)。

于 2013-05-14T15:36:33.050 回答