假设有a.gz和b.gz。
$ gzip_merge a.gz b.gz -output c.gz
我想要这个节目。当然了,
$ cat a.gz b.gz > c.gz
不起作用。因为a.gz的最后一个DEFLATE块有BFINAL和b.gz的GZIP头。(请参阅RFC1951,RFC1952),但是如果您取消设置BFINAL,丢弃第二个GZIP头并遍历第二个GZIP文件的字节边界,则可以合并它。
事实上,我想为这个问题写一个开源程序,但不知道如何发布它。所以我请Joel做我的项目经理,我向他解释和辩护,他终于明白了我想做什么,但他说他太忙了。:(
当然,我也可以自己写一个,然后试着用我的方式发布它。但我不能一个人做这件事,因为我的日常工作属于我雇主的财产。
有志愿者吗?我们可以做程序员(我)、出版商(你)或程序员(你)、出版商(我)。我需要的只是一些功劳。我曾经实现过一个用RFC3320描述的通用解压虚拟机。所以我知道这是可行的。
或者,你可以带我去看那个节目。它对于管理日志文件非常有用,比如将365 (天)的gzipped日志文件合并为一个。;)
谢谢。
发布于 2008-11-08 01:44:59
当然,
a.gz b.gz > c.gz不起作用。
实际上,它工作得很好。我刚测试过了。它甚至在gzip手册页(某种程度上)中有所记录。
Multiple compressed files can be concatenated. In this case, gunzip
will extract all members at once. For example:
gzip -c file1 > foo.gz
gzip -c file2 >> foo.gz
Then
gunzip -c foo
is equivalent to
cat file1 file2发布于 2012-07-13 05:52:48
您还可以:
zcat a.gz b.gz > c.txt && gzip c.txt只要您的Linux/Unix发行版内置了zcat,大多数发行版都内置了zcat(您可以为没有内置zcat的发行版安装它)。
或者:
zcat a.gz b.gz | gzip -c > c.txt.gzhttps://stackoverflow.com/questions/274185
复制相似问题