Você pode usar aqui strings e uma sucessão de comandos:
(gzip <<<"<root>"; cat input.xml.gz; gzip <<<"</root>") > newfile.gz
Aqui, as strings são descritas em O que << < < Quer dizer? e em o manual de Bash .
Eu tenho um arquivo grande (vários GB) xml
que está faltando um elemento raiz. Eu poderia usar cat
no Ubuntu para envolver um elemento <root>
em torno do conteúdo.
Como posso conseguir isso sem ter que extrair e reempacotar o conteúdo?
Funciona se eu criar arquivos gz com prefixo e postfix separados e concatená-los com cat. Mas eu poderia fazer melhor, sem ter que criar arquivos explícitos de pré / pós-gz? Posso conseguir o mesmo na hora?
echo "<root>" | gzip > prefix.gz
echo "</root>" | gzip > postfix.gz
cat prefix.gz input.xml.gz postfix.gz > newfile.gz
Você pode usar aqui strings e uma sucessão de comandos:
(gzip <<<"<root>"; cat input.xml.gz; gzip <<<"</root>") > newfile.gz
Aqui, as strings são descritas em O que << < < Quer dizer? e em o manual de Bash .