Gibt es eine GZIP Fusion, die ohne Dekomprimierung sie zwei GZIP Dateien übergeht?
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.
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