Pergunta

Vamos dizer que há a.gz e b.gz.

$ gzip_merge a.gz b.gz -output c.gz

Eu gostaria de ter este programa. Claro,

$ cat a.gz b.gz> c.gz

não funciona. Dado que o bloco final do DEFLATE a.gz tem BFINAL, e o cabeçalho de GZIP b.gz. (Consulte RFC1951, RFC1952) Mas se você unset BFINAL, jogar fora o segundo cabeçalho GZIP e caminhada através dos limites de byte do segundo arquivo gzip, você pode fundi-lo.

Na verdade, eu pensei em escrever um programa de código aberto para esta matéria, mas não sabia como para publicá-lo. Então eu perguntei ao Joel para ser meu gerente do programa, e eu andei-lo através da minha explicação e defesa, ele finalmente entendeu o que eu queria fazer, mas disse que ele estava muito ocupado. : (

Claro, eu poderia escrever um para mim e tentar a minha maneira de publicá-lo. Mas eu não posso fazer isso sozinho, porque meu dia de trabalho pertence à propriedade de meu empregador.

Existe algum voluntário? Poderíamos trabalhar como programador (me), publisher (você) ou programador (você), publisher (me). Todos necessidade I é algum crédito. Certa vez, implementou uma Máquina Virtual Universal descompactador descrito no RFC3320. Então, eu sei que isso é viável.

Ou, você poderia apontar-me a esse programa. Seria muito útil para gerenciar arquivos de log como fusão 365 (dia) arquivos de log gzipped a um. ;)

Graças.

Foi útil?

Solução

É claro, gato a.gz b.gz> c.gz não funciona.

Na verdade, ele funciona muito bem. Eu só testei. É ainda documentado (tipo de) na página man 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

Outras dicas

Você poderia igualmente:

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

desde que sua distribuição Linux / Unix tem zcat construído em, que a maioria deles não (e você pode instalá-lo para os que não o fazem.)

Como alternativa:

zcat a.gz b.gz | gzip -c > c.txt.gz
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top