with how files create compress merge gzip deflate

merge - how - ¿Hay una fusión GZIP que fusiona dos archivos GZIP sin descomprimirlos?



how to create a gz file in linux (2)

Por supuesto, cat a.gz b.gz> c.gz no funciona.

En realidad, funciona bien. Acabo de probarlo. Incluso está documentado (más o menos) en la página man de 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

Digamos que hay a.gz y b.gz.

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

Me gustaría tener este programa. Por supuesto,

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

no funciona Porque el bloque final DEFLATE de a.gz tiene BFINAL y el encabezado GZIP de b.gz. (Consulte RFC1951, RFC1952) Pero si desarma BFINAL, tira el segundo encabezado GZIP y recorre los límites de bytes del segundo archivo gzip, puede fusionarlo.

De hecho, pensé en escribir un programa de código abierto para este tema, pero no sabía cómo publicarlo. Entonces le pedí a Joel que fuera mi gerente de programa, y ​​lo acompañé en mi explicación y defensa, finalmente entendió lo que quería hacer, pero me dijo que estaba demasiado ocupado. :(

Por supuesto, podría escribir uno yo mismo y tratar de publicarlo. Pero no puedo hacerlo solo porque mi trabajo diario pertenece a la propiedad de mi empleador.

¿Hay voluntarios? Podríamos trabajar como programador (yo), editor (usted) o programador (usted), editor (yo). Todo lo que necesito es un poco de crédito. Una vez implementé una máquina virtual descompresora universal descrita en RFC3320. Entonces sé que esto es factible.

O bien, podrías señalarme ese programa. Sería muy útil para administrar archivos de registro como fusionar 365 archivos de registro comprimidos con gzip a uno. ;)

Gracias.


También podrías:

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

siempre y cuando su distribución de Linux / Unix tenga incorporado zcat, que la mayoría de ellos tiene (y podría instalarlo para los que no.)

Alternativamente:

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