هناك اندماج GZIP الذي يدمج ملفين GZIP دون ضغطها؟
سؤال
ودعنا نقول أن هناك a.gz، وb.gz.
و$ gzip_merge a.gz b.gz المخرجات c.gz
وأود أن يكون هذا البرنامج. وبطبيعة الحال،
و$ القط a.gz b.gz> c.gz
ولا يعمل. لأن كتلة انكماش النهائي من a.gz ديه BFINAL، ورأس GZIP من b.gz. (راجع RFC1951، RFC1952) ولكن إذا كنت إلغاء تعيين BFINAL، ورمي بعيدا رأس GZIP الثاني والمشي من خلال الحدود بايت من الملف غزيب الثاني، يمكنك دمج ذلك.
في الواقع، فكرت في كتابة برنامج مفتوح المصدر لهذه المسألة، ولكن لم أكن أعرف كيفية نشرها. لذلك طلبت من جويل ليكون مدير برنامجي، ومشيت عليه من خلال تعليلي والدفاع، وقال انه يفهم أخيرا ما أردت القيام به، لكنه قال انه كان مشغولا جدا. : (
وبطبيعة الحال، أنا يمكن أن يكتب واحد نفسي ومحاولة طريقي لنشرها. ولكن لا أستطيع أن أفعل هذا وحده لأن عملي اليوم ينتمي لممتلكات صاحب العمل.
هل هناك أي المتطوعين؟ يمكننا أن نعمل كما مبرمج (لي)، الناشر (أنت) أو مبرمج (أنت)، الناشر (لي). كل ما تحتاجه هو بعض الائتمان. أنا مرة واحدة نفذت آلة العالمي إلغاء ضغط الظاهري هو موضح في RFC3320. إذا كنت لا تعرف ذلك ممكنا.
وOR، هل يمكن لي نقطة في هذا البرنامج. وسيكون من المفيد جدا لإدارة ملفات السجل مثل دمج 365 (اليوم) ملف GZipped تسجيل الملفات إلى واحد. ؛)
وشكرا.
المحلول
وبطبيعة الحال، القط a.gz b.gz> c.gz لا يعمل.
اقتباس فقرة>والواقع، وأنها تعمل على ما يرام. لقد اختبرت ذلك. انها حتى موثقة (من نوع) في صفحة غزيب الرجل.
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
نصائح أخرى
هل يمكن أيضا:
zcat a.gz b.gz > c.txt && gzip c.txt
وطالما توزيعة لينكس / يونكس الخاصة بك قد zcat بنيت في، والتي أكثرهم لا (وكنت قد تثبيته لتلك التي لا تفعل ذلك.)
وبدلا من ذلك:
zcat a.gz b.gz | gzip -c > c.txt.gz