在gzip压缩文件的开头和结尾添加文本

时间:2020-01-20 16:25:42

标签: bash shell

使用shell脚本:如何在未解压缩的情况下在压缩文件的开头和结尾添加文本

我的压缩后的样子如下:

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

添加页眉和页脚后,它应类似于

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

谢谢。

1 个答案:

答案 0 :(得分:3)

压缩文件可以像普通文本文件一样加入:

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

使用<()process substitution,使用<<<here-string