Gibt es eine GZIP Fusion, die ohne Dekomprimierung sie zwei GZIP Dateien übergeht?

StackOverflow https://stackoverflow.com/questions/274185

  •  07-07-2019
  •  | 
  •  

Frage

Lassen Sie uns sagen, dass es a.gz und b.gz.

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

Ich mag dieses Programm haben. Natürlich

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

funktioniert nicht. Da der letzte DEFLATE Block a.gz hat BFINAL und die GZIP-Header von b.gz. (Siehe RFC1951, RFC1952) Aber wenn man nicht gesetzt BFINAL, den zweiten GZIP Kopfwurf entfernt und zu Fuß durch die Byte-Grenzen der zweiten gzip-Datei, können Sie es zusammenführen.

In der Tat, dachte ich an ein Open-Source-Programm für diese Angelegenheit zu schreiben, aber nicht wissen, wie es zu veröffentlichen. Also habe ich die Joel fragte mein Programm-Manager zu sein, und ich ging mit ihm durch meine Erklärung und Verteidigung, er endlich verstanden, was ich tun wollte, sagte aber, er war zu beschäftigt. : (

Natürlich könnte ich eine selbst schreiben und versuche, meine Art und Weise, sie zu veröffentlichen. Aber ich kann das nicht allein, weil mein Tag Arbeit auf das Eigentum meines Arbeitgebers gehört.

Gibt es irgendwelche Freiwilligen? Wir konnten als Programmierer (me) arbeiten, Herausgeber (Sie) oder Programmierer (Sie), Verleger (me). Alles was ich brauche ist etwas Kredit. Ich implementiert einmal eine Universal-Entpacker Virtual Machine in RFC3320 beschrieben. Also ich weiß, dass dies machbar ist.

OR, könnten Sie mich zu diesem Programm zeigen. Es wäre für die Verwaltung von Protokolldateien wie verschmelzenden 365 (Tag) sehr nützlich sein, gzip-Dateien aus einem loggt sein. ;)

Danke.

War es hilfreich?

Lösung

  

Natürlich Katze a.gz b.gz> c.gz funktioniert nicht.

Eigentlich funktioniert es ganz gut. Getestet habe ich es einfach. Es ist sogar (Art) in der gzip-man-Seite dokumentiert.

   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

Andere Tipps

Sie könnten auch:

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

solange Ihr Linux / Unix-Distribution zcat eingebaut hat, die meisten von ihnen tun (und man könnte es für diejenigen, installieren, die dies nicht tun.)

Alternativ:

zcat a.gz b.gz | gzip -c > c.txt.gz
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top