【发布时间】:2011-12-03 08:42:48
【问题描述】:
我有多个(很多)文件;每个都很大:
file0.txt
file1.txt
file2.txt
我不想将它们合并到一个文件中,因为生成的文件将是 10+ Gigs。每个文件中的每一行都包含一个 40 字节的字符串。字符串现在排列得很好,(大约 1:10 的步长是值减少而不是增加)。
我想要订购的线路。 (如果可能的话就地?)这意味着file0.txt 末尾的一些行将移动到file1.txt 的开头,反之亦然。
我正在使用 Linux 并且对它相当陌生。我知道单个文件的sort 命令,但我想知道是否有一种方法可以跨多个文件进行排序。或者也许有一种方法可以制作由 linux 将视为单个文件的较小文件制成的伪文件。
我知道可以做什么:
我可以单独对每个文件进行排序并读入file1.txt 以找到大于file0.txt 中最大值的值(同样从file0.txt 末尾获取行),加入然后排序.. 但这很痛苦并假设来自file2.txt 的值不属于file0.txt(但在我的情况下极不可能)
编辑
要清楚,如果文件看起来像这样:
f0.txt
DDD
XXX
AAA
f1.txt
BBB
FFF
CCC
f2.txt
EEE
YYY
ZZZ
我想要这个:
f0.txt
AAA
BBB
CCC
f1.txt
DDD
EEE
FFF
f2.txt
XXX
YYY
ZZZ
【问题讨论】: