如何用字符串包裹大 gzip 文件?

如何用字符串包裹大 gzip 文件?

我有一个大(几 GB)xml文件缺少根元素。我可能会cat在 ubuntu 上使用来将<root>元素包裹在内容周围。

如何在无需提取和重新打包内容的情况下实现此目的?

如果我创建单独的前缀和后缀 gz 文件,并将它们与 cat 连接起来,它就可以工作。但是我可以做得更好,而不必创建显式的 pre-/postfix gz 文件吗?我可以即时实现同样的目标吗?

echo "<root>" | gzip > prefix.gz
echo "</root>" | gzip > postfix.gz
cat prefix.gz input.xml.gz postfix.gz > newfile.gz

答案1

您可以在此处使用字符串和一系列命令:

(gzip <<<"<root>"; cat input.xml.gz; gzip <<<"</root>") > newfile.gz

这里的字符串描述如下<<<是什么意思?并在Bash 手册

相关内容