Arch-Linux
bzip2 通過管道解壓、更改和壓縮文本文件
我正在尋找一種解壓縮 bzip2 壓縮文本文件、更改內容(添加新內容、排序等)並通過管道再次壓縮它的方法。
我已經找到了一種方法來做到這一點,但不幸的是我必須使用另一個文件作為重新壓縮的輸出,因為在這種情況下 bzip2 不允許使用相同的文件。
這是我的程式碼:
bzip2 -dc file.bz2 | sort | bzip2 -9 > file_2.bz2
如果我使用相同的文件,我會收到以下錯誤:
bzip2: Compressed file ends unexpectedly; perhaps it is corrupted? *Possible* reason follows. bzip2: Success Input file = file.bz2, output file = (stdout) It is possible that the compressed file(s) have become corrupted. You can use the -tvv option to test integrity of such files. You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files.
有什麼解決方案我可以解決這個問題嗎?
提前致謝!
有什麼解決方案我可以解決這個問題嗎?
mv file_2.bz2 file.bz2
此外,您可以使用
bunzip2
而不是bzip2 -d
. 在您的案例中,該-c
選項bzip2
是不必要的。在原地寫回壓縮數據是一項非常棘手的工作,因為壓縮因子因文件而異。所以不要去那裡。
在您的情況下,
sort
無論如何都要記憶體整個文件。所以原則上應該很容易,但實際上沒有簡單的方法可以做到。