我有两个文件
第一个文件采用这种格式。每行以唯一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)的行匹配,并将整行复制到新文件
答案 0 :(得分: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
)。