我有很多文件,比如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。
如何在不降低性能的情况下减少磁盘使用量?
答案 0 :(得分:2)
你的目标是获得一个大的排序输出文件吗?看看sort --merge
选项。您可以单独对小输入文件进行排序,然后将它们全部合并到大型排序输出中。如果在生成排序的对应文件后立即删除每个未排序的输入文件,则在中间结果上不会使用超过4MB的空间。