shell 命令 join 会导致内存不足吗?

shell 命令 join 会导致内存不足吗?

我有两个文件需要合并。

文件 1:

a  A1
a  A2
a  A3
...
c  C1
c  C2
...

文件2:

a  feature1_of_a
a  feature2_of_a
...
a  featureN_of_a
...
...
c  feature1_of_c
c  feature2_of_c
...

加入后,我可以获得如下文件:

A1  feature1_of_a
A2  feature1_of_a
A3  feature1_of_a
A1  feature2_of_a
A2  feature2_of_a
A3  feature2_of_a
...
A1  featureN_of_a
A2  featureN_of_a
A3  featureN_of_a
...

为了做到这一点:我写了 shell 命令join -11 -21 -o1.2,2.2 file1 file2。但问题是:数字 N 可能很大。因此,如果 join 一次性将 a 的所有特征读入内存,内存可能不够用。

我不知道 join 是如何实现的。内存会成为问题吗?如果是这样,有什么方法可以得到我想要的吗?

答案1

您认为 N 可能有多大?

除非它是在“数百万”的范围内,或者你在异常严格限制(内存不足)的环境中工作,否则你不会耗尽内存。

相关内容