Você pode fazer isso com o redirecionamento:
(echo "<root>"; cat test.xml; echo "</root>") > wrapped-test.xml
E com indention:
(echo "<root>"; sed 's/^/ /' test.xml; echo "</root>") > wrapped-test.xml
Eu tenho um arquivo xml
chamado test.xml
, sem uma tag raiz como esta:
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
Como posso envolver esse arquivo com uma tag raiz para que a saída fique assim:
<root>
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
</root>
Você pode fazer isso com o redirecionamento:
(echo "<root>"; cat test.xml; echo "</root>") > wrapped-test.xml
E com indention:
(echo "<root>"; sed 's/^/ /' test.xml; echo "</root>") > wrapped-test.xml
Na linha número um, insira antes ( i\
) a tag de abertura e na última linha ( $
) acrescente depois ( a\
) a tag de fechamento (não me importei com a formatação com espaços ):
EDIT : esqueci de dizer que GNU
versão de sed
é necessária.
Conteúdo de script.sed
:
1 i\
<root>
$ a\
</root>
Execute como:
sed -f script.sed infile
Com a seguinte saída:
<root>
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
</root>
Tags text-processing sed