【发布时间】:2015-01-22 13:24:33
【问题描述】:
我有一个包含重复项的单列标识符的文件(称为 fileA)。它看起来像这样:
转到:0005515 去:0005737 去:0005875 去:0005884 去:0005200 去:0005524 去:0005737 ...
我有另一个文件(称为 fileB),它包含两列,第一列有标识符,另一列有关联的文本。它看起来像这样:
GO:0000001 线粒体继承 GO:0000002 线粒体基因组维护 GO:0000003 复制 GO:0000006 高亲和力锌摄取跨膜转运蛋白活性 GO:0000007 低亲和力锌离子跨膜转运蛋白活性 GO:0000009 α-1,6-甘露糖基转移酶活性 GO:0000010 反式六戊二烯转移酶活性 GO:0000011 液泡继承 ...
我想使用 fileA 中的标识符进行 grep,以从 fileB 中获取与标识符和描述匹配的行,并将其输出到另一个 fileC 中,其顺序与 fileA 相同,而不是 fileB,同时保留重复项。
我尝试了几种不同的方法:
fgrep -f fileA fileB > fileC
这不起作用,因为fileC中的顺序是fileB的顺序,而不是fileA的顺序。
对于 `FileA` 中的名称
做
grep "$name" FileB >> FileC
完成
这应该可以,但输出是:
GO:0005515 蛋白结合 GO:0005737 细胞质 GO:0005737 细胞质 GO:0005737 细胞质 GO:0005737 细胞质 GO:0005737 细胞质 GO:0016301 激酶活性 GO:0005525 GTP 绑定 GO:0005737 细胞质 GO:0016021 膜的整体组件 ...
它们也不是文件 A 的顺序(除了前两个)。
有什么想法吗?
【问题讨论】: