Merge 是否有一个GZIP合并,合并两个GZIP文件而不解压缩它们?
假设有a.gz和b.gz $gzip_merge a.gz b.gz-输出c.gz 我想要这个节目。当然, $cat a.gz b.gz>c.gz 不起作用。因为a.gz的最后一个DEFLATE块有BFINAL和b.gz的GZIP头。(请参阅RFC1951、RFC1952)但如果取消设置BFINAL,请丢弃第二个GZIP头并遍历第二个GZIP文件的字节边界,您可以合并它 事实上,我曾想过为此编写一个开源程序,但不知道如何发布它。所以我请乔尔做我的项目经理,我给他讲解了我的解释和辩护,他终于明白我想做什么,但说他太忙了( 当然,我可以自己写一本,然后试着用我的方式出版。但我不能独自完成这项工作,因为我的日常工作属于我雇主的财产 有志愿者吗?我们可以做程序员(我)、发布者(你)或程序员(你)、发布者(我)。我所需要的只是一些学分。我曾经实现过RFC3320中描述的通用解压器虚拟机。所以我知道这是可行的 或者,你可以给我指出那个程序。它对于管理日志文件非常有用,比如将365(天)gzip日志文件合并为一个日志文件 谢谢 当然,cat a.gz b.gz>c.gz不起作用 实际上,它工作得很好。我刚测试过。它甚至在gzip手册页中有记录(某种程度上)Merge 是否有一个GZIP合并,合并两个GZIP文件而不解压缩它们?,merge,gzip,deflate,Merge,Gzip,Deflate,假设有a.gz和b.gz $gzip_merge a.gz b.gz-输出c.gz 我想要这个节目。当然, $cat a.gz b.gz>c.gz 不起作用。因为a.gz的最后一个DEFLATE块有BFINAL和b.gz的GZIP头。(请参阅RFC1951、RFC1952)但如果取消设置BFINAL,请丢弃第二个GZIP头并遍历第二个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
你也可以:
zcat a.gz b.gz > c.txt && gzip c.txt
只要您的Linux/Unix发行版内置了zcat,大多数发行版都会这样做(您可以为没有安装的发行版安装zcat)
或者:
zcat a.gz b.gz | gzip -c > c.txt.gz
只是出于好奇,你为什么要这么做?如果您只想将某个文件表示为单个文件,为什么不将其压缩呢?如果您有一个MVC框架,并且希望加快页眉模板、动态内容模板和页脚模板的交付,那么您可以选择压缩。如果你提前压缩页眉模板和页脚模板,它可以加快速度。哦,它就像一个符咒!非常感谢。我想这一切都与Perl实现(如PerlIO::gzip)配合使用。对于创建文件,我认为不会有问题。为了阅读它们,在最坏的情况下,您可以使用循环或外壳输出到zcat/gunzip。Andru Luvisi的解决方案从未压缩的文件开始。