解压缩、编辑、压缩和连接文件

Posted

技术标签:

【中文标题】解压缩、编辑、压缩和连接文件【英文标题】:Uncompress, edit, compress and concatenate files 【发布时间】:2013-04-25 12:56:21 【问题描述】:

我有一堆要连接的大型压缩文件。问题是,未压缩版本的末尾没有换行符,所以如果我尝试将它们放在一起并压缩它们,一个文件中的最后一行将连接到下一个文件中的第一行(这会引发我正在使用的软件错误)。 只是在每个压缩文件之间插入一个换行符来处理它们是行不通的,因为我认为 gzip 检测到换行符并认为它是“尾随垃圾”之后的所有内容。例如

for f in *.gz; do (cat "$f"; echo) >> all.gz; done;
gzip -d all.gz 

gzip: all.gz: decompression OK, trailing garbage ignored

我想做的是这样的:

unzip file1.gz | add a newline char| gzip the output >> output.gz

然后对file2.gz、file3.gz等做同样的事情

有什么建议吗?

【问题讨论】:

【参考方案1】:

您不需要解压缩和重新压缩。只需使用 gzip 压缩一个字节的换行符,然后在您的大型 gzip 文件之间连接。

echo | gzip > newline.gz
cat file1.gz newline.gz file2.gz newline.gz file3.gz ... > file.gz

这将是您为每个换行插入的 21 字节文件,但既然您说您的其他文件很大,那应该没关系。

【讨论】:

以上是关于解压缩、编辑、压缩和连接文件的主要内容,如果未能解决你的问题,请参考以下文章

在UWP中创建/编写/压缩/解压缩文件

编辑文件而不解压缩存档

压缩解压缩 和 打包解打包 命令

Linux中压缩与解压缩:

压缩与解压缩

在python中按块解压缩文件夹