2つのgzファイルを1つにマージする必要があります。つまり、2つの.gzファイルを1つに結合して、結合したファイルを抽出すると、元の入力ファイルの連結を含む1つのファイルを取得します。
time join <(zcat r_TR2_2012-05-28-08-10-00.gz) <(zcat r_TR1_2012-05-28-08-10-00.gz)
上記のステートメントは期待どおりに機能していません。私は必要なことをするために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
次に、ファイルを抽出するときにファイルを連結して、必要な出力を生成します。
1つのステートメントでこれを行う方法はありますか?
驚くべきことに、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
$
少し不安ですが、感動しました。
私はあなたが意味すると思います:
zcat r_TR2_2012-05-28-08-10-00.gz r_TR1_2012-05-28-08-10-00.gz| gzip -9 > joined.gz
複数の圧縮ファイル.gz
があり、それらを1つのファイルに結合する必要がある場合は、tar
を直接使用してこれを行うことができます。解凍してから再度圧縮する必要はありません。
あなたはこれを試すことができます:
tar cvf combined.gz.tar r_TR1_2012-05-28-08-10-00.gz r_TR2_2012-05-28-08-10-00.gz
ただし、既知の.gz.tar
ではなく、拡張子が.tar.gz
のファイルを取得します。ファイルを解凍するには、次のことを試してください。
tar -xavf combined.gz.tar
オプション-aはここで役立ちます(man tar
から):
-a, --auto-compress
use archive suffix to determine the compression program