当前位置:  开发笔记 > 运维 > 正文

是否存在合并两个GZIP文件但未解压缩的GZIP合并?

如何解决《是否存在合并两个GZIP文件但未解压缩的GZIP合并?》经验,为你挑选了2个好方法。

假设有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(天)gzip压缩日志文件合并为一个.;)

谢谢.



1> Andru Luvisi..:

当然,cat 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



2> Suman..:

你也可以:

zcat a.gz b.gz > c.txt && gzip c.txt

只要您的Linux/Unix发行版内置了zcat,其中大多数都是这样做的(并且您可以将它安装在那些没有的.)

或者:

zcat a.gz b.gz | gzip -c > c.txt.gz

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有