我試圖運行一個排列測試,其中涉及將一千個非常大的預排序文件合併爲一個大型排序文件。UNIX sort -m命令的空間優化?
當前運行的文件甚至比我通常合併的文件還要多(每個文件爲68M到106M)。
我沒有足夠的硬盤空間用於輸入,臨時中介和輸出全部在同一時間。有沒有辦法使用sort
破壞性地合併所有這些文件?
這裏是我目前使用的命令:
sort -T /media/WD_Book/tmp --compress-program=gzip -g -k 6 -m *.rand.tab > /media/WD_Book/output/merged.rand.tab
(該文件編號0001.rand.tab
通過1000.rand.tab
和排序關鍵是在指數表示法中第6列[從而-k 6
和-g
]。)
我知道可以在原地運行非合併sort
,但該手冊頁明確指出它不適用於-m
。
如果沒有中介,你能存儲輸入和輸出嗎?如果這些文件是預先分類的,你可以破解一些perl/c/python來進行合併。如果沒有,您可以逐一合併它們並刪除殘餘物。 –
如何將文件0001複製到一個名爲「huge」的文件中,刪除0001,將0002連接成「huge,刪除0002等等,然後對1和唯一的大文件進行排序? –