在进行unix排序时最小化磁盘使用量

时间:2011-08-16 02:47:41

标签: unix sorting

我有很多文件,比如1000个文件,每个文件有4mb。总共有4GB。我想使用unix排序对它们进行排序,这是我的命令:

sort -t ',' -k 1,1 -k 5,7 -k 22,22 -k 2,2r INPUT_UNSORTED_${current_time}.DAT -o INPUT_SORTED_${current_time}.DAT

其中INPUT_UNSORTED是通过附加1000个文件创建的大文件。所以还有另外4GB。 INPUT_SORTED也是另一个4GB。

我发现unix sort使用临时文件夹对文件进行排序,临时文件也可能达到4gb。

如何在不降低性能的情况下减少磁盘使用量?

1 个答案:

答案 0 :(得分:2)

你的目标是获得一个大的排序输出文件吗?看看sort --merge选项。您可以单独对小输入文件进行排序,然后将它们全部合并到大型排序输出中。如果在生成排序的对应文件后立即删除每个未排序的输入文件,则在中间结果上不会使用超过4MB的空间。