bzip2 はパイプを介してテキストファイルを解凍、変更、圧縮します。

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.

私の問題に対する解決策はありますか?

よろしくお願いします!

ベストアンサー1

私の問題に対する解決策はありますか?

mv file_2.bz2 file.bz2

または、ユースケースなど、オプションの代わりにbunzip2使用できます。bzip2 -d-cbzip2

圧縮要素がファイルごとに異なるため、圧縮されたデータを所定の位置に書き換えるのは難しいです。だからそこに行かないでください。

あなたの場合、sortとにかくファイル全体がキャッシュされます。したがって、原則として簡単にする必要がありますが、実際には簡単な方法はありません。

おすすめ記事