【发布时间】:2012-03-21 14:32:32
【问题描述】:
我有两个文件,如下所示:
文件 1(2 列):
ID1 123
ID2 234
ID3 232
ID4 344
...
文件 2(>100 万列)
ID2 A C ...
ID3 G T ...
ID1 C T ...
ID4 A C ...
...
我想根据 ID 将文件 1 的第 2 列中的值添加到文件 2 作为第二列。所以合并后的文件应该是这样的:
ID2 234 A C ...
ID3 232 G T ...
ID1 123 C T ...
ID4 344 A C ...
...
因此与文件 2 完全相同(行顺序相同),但添加了第二列。 ID 是第一列的值(存在于两个文件中)。文件 1 的行数/ID 多于文件 2。文件 2 中的所有 ID 都在文件 1 中,但并非文件 1 中的所有 ID 都在文件 2 中。
有谁知道如何在 unix/bash 下做到这一点?非常感谢!
【问题讨论】:
-
有多少行? (将文件1全部加载到内存中可行吗?)
-
文件1有接近400万行,文件2有几万到几十万行(我实际上有几个文件2格式的文件,所以我必须多次这样做(= 每个文件))