Arch-Linux

bzip2 通過管道解壓、更改和壓縮文本文件

  • December 4, 2016

我正在尋找一種解壓縮 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無論如何都要記憶體整個文件。所以原則上應該很容易,但實際上沒有簡單的方法可以做到。

引用自:https://unix.stackexchange.com/questions/327991