排序内存不足

sort runs out of memory

我正在使用包含排序的管道来合并多个大型文本文件并删除重复项。
我没有 root 权限,但没有以任何方式配置该框以比默认 debian jessie 进一步削减非 root 权限。
盒子有 32GB RAM 和 16GB 正在使用中。
无论我如何调用排序(GNU 排序 8.13),它都会填满所有剩余的 RAM 并因 "out of memory" 而崩溃。
它确实在崩溃之前填满了所有内存。我遵循了上面的过程。
我尝试使用 -S 参数显式设置最大内存使用量,范围从 80% 到 10%,从 8G 到 500M。
整个管道看起来类似于:

    cat * | tr -cd '[:print:]' |sort {various params tested here} -T /other/tmp/path/ | uniq > ../output.txt

总是相同的行为。
有谁知道什么会导致这样的问题?
当然还有如何解决?

我自己发现了这个问题。相当简单。
"tr -cd '[:print:]'" 删除换行符并逐行排序读取。
所以它试图将所有文件作为一行读取,而 -S 参数无法完成它的工作。