'sort -u' 对巨大文件的可扩展性

Grz*_*cki 24 sort

'sort -u' 的合理可扩展性限制是多少?(在“行长”,“行数”,“总文件大小”的维度?)

对于在“行数”维度上超过此值的文件,Unix 替代品是什么?(当然我可以轻松实现一个,但我想知道是否有一些标准的 Linux 命令可以完成?)

Ant*_*hon 41

sort你在Linux上找到来自的coreutils包和工具的外部R-路合并。它将数据分成可以在内存中处理的块,将它们存储在磁盘上,然后合并它们。块是并行完成的,如果机器有处理器的话。

因此,如果存在限制,那就是sort可用于存储它必须合并的临时文件的可用磁盘空间以及结果。

  • 请注意,GNU sort 可以压缩这些临时文件以打包更多(并提高慢速磁盘的性能)。 (4认同)
  • 除了内存之外,还有另一个适用于合并阶段的限制:可以同时打开的文件数。这通常是操作系统施加的限制。GNU sort 也可以解决这个问题,通过递归合并一次可以打开的文件数量! (3认同)
  • @Random832,它意味着能够覆盖文件本身(`sort -o file file`) (3认同)