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无论如何都会缓存整个文件。所以原则上应该很容易,但实际上并没有一个简单的方法来做到这一点。

相关内容