我试图运行一个排列测试,其中涉及将一千个非常大的预排序文件合并为一个大型排序文件。UNIX sort -m命令的空间优化?
当前运行的文件甚至比我通常合并的文件还要多(每个文件为68M到106M)。
我没有足够的硬盘空间用于输入,临时中介和输出全部在同一时间。有没有办法使用sort
破坏性地合并所有这些文件?
这里是我目前使用的命令:
sort -T /media/WD_Book/tmp --compress-program=gzip -g -k 6 -m *.rand.tab > /media/WD_Book/output/merged.rand.tab
(该文件编号0001.rand.tab
通过1000.rand.tab
和排序关键是在指数表示法中第6列[从而-k 6
和-g
]。)
我知道可以在原地运行非合并sort
,但该手册页明确指出它不适用于-m
。
如果没有中介,你能存储输入和输出吗?如果这些文件是预先分类的,你可以破解一些perl/c/python来进行合并。如果没有,您可以逐一合并它们并删除残余物。 –
如何将文件0001复制到一个名为“huge”的文件中,删除0001,将0002连接成“huge,删除0002等等,然后对1和唯一的大文件进行排序? –