Добавить текст в начало и конец gziped файла - PullRequest
0 голосов
/ 20 января 2020

Использование сценариев оболочки: как добавить текст в начало и конец сжатого файла без распаковки

Мой сжатый файл выглядит примерно так:

<record>ABC</record>
<data>DFC</data>

После добавления верхний и нижний колонтитулы должны выглядеть как

<xtr>
<record>ABC</record>
<data>DFC</data>
</xtr>

Заранее спасибо.

1 Ответ

3 голосов
/ 20 января 2020

Gzip-файлы могут быть объединены, как если бы они были обычными текстовыми файлами:

cat <(gzip <<< '<xtr>') file.gz <(gzip <<< '</xtr>') > new.gz

Вышеуказанная команда почти равна следующему:

gzip <<< '<xtr>' > tmpA.gz
gzip <<< '</xtr>' > tmpB.gz
cat tmpA.gz file.gz tmpB.gz > new.gz

Вы можете комбинировать ее с sponge чтобы избавиться от временного файла:

cat <(gzip <<< '<xtr>') file.gz <(gzip <<< '</xtr>') | sponge file.gz

Использование <() - это замена процесса , а использование <<< - это here-string .

...