合并两个或多个压缩文件

sha*_*nuo 4 tar gzip

我有 2 个需要合并为一个的 gz 文件——也就是说,我想将两个 .gz 文件合并为一个,这样当我提取合并的文件时,我会得到一个包含原始输入文件串联的文件。

time join <(zcat r_TR2_2012-05-28-08-10-00.gz) <(zcat r_TR1_2012-05-28-08-10-00.gz)
Run Code Online (Sandbox Code Playgroud)

上面的语句没有按预期工作。我正在使用 3 个命令来完成所需的工作。

gunzip r_TR2_2012-05-28-08-10-00.gz 
gunzip r_TR1_2012-05-28-08-10-00.gz 
tar -zcvf combined.tar.gz r_TR1_2012-05-28-08-10-00 r_TR2_2012-05-28-08-10-00 
Run Code Online (Sandbox Code Playgroud)

然后在提取文件时将文件连接在一起以生成我想要的输出。

有没有办法在 1 条语句中做到这一点?

小智 7

我猜你的意思是:

zcat r_TR2_2012-05-28-08-10-00.gz r_TR1_2012-05-28-08-10-00.gz| gzip -9 > joined.gz


vor*_*aq7 5

令人惊讶的是 Quanta 在评论中发布的内容 - 至少在我的 Mac 上!

$ echo abc > foo
$ echo cba > bar
$ gzip foo
$ gzip bar
$ cat foo.gz bar.gz > baz.gz
$ gunzip baz.gz 
$ cat baz 
abc
cba
$
Run Code Online (Sandbox Code Playgroud)

我有些不安,但也印象深刻。

  • 是的,这是 [有意](http://manpages.ubuntu.com/manpages/precise/en/man1/gzip.1.html#contenttoc4)。 (2认同)