Como colocar uma string ao redor do arquivo gzip grande?

1

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
    
por membersound 25.04.2018 / 10:12

1 resposta

3

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 .

    
por 25.04.2018 / 10:17

Tags