我正在寻找一种方法来解压缩 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
.选项-c
为bzip2
在您的用例中,
就地写回压缩数据是一件非常棘手的事情,因为压缩因子因文件而异。所以就不要去那里。
就您而言,sort
无论如何都会缓存整个文件。所以原则上应该很容易,但实际上并没有一个简单的方法来做到这一点。