2015-06-12 31 views
0

我正在使用一個管道,包括排序合併多個大型文本文件,並刪除愚蠢。
我沒有root權限,但是沒有以任何方式配置該框來削減比默認debian jessie更低的非root權限。
盒子有32GB RAM和16GB正在使用中。
無論我怎麼稱呼排序(GNU排序8.13),它都會填滿所有剩餘的內存並導致「內存不足」崩潰。
在崩潰之前它確實填滿了所有的內存。我遵循頂部的過程。
我試圖明確地設置最大內存使用量,其中-S參數範圍從80%到10%,從8G到500M。
整個管道類似於:排序內存不足

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

總是相同的行爲。
有誰知道可能會導致這樣的問題?
當然如何解決它?

回答

1

我自己發現了這個問題。這很容易。
「tr -cd'[:print:]'」逐行刪除換行符和排序讀取。
因此,它會嘗試將所有文​​件讀取爲一行,而-S參數無法完成其工作。