Não use sed
, awk
e similares para analisar dados XML / HMTL - nunca chegará a um resultado robusto e escalonável. Use um processador XML / HTML adequado.
O caminho certo com a ferramenta xmlstarlet
:
xmlstarlet ed -s '//fontconfig' -t elem -n 'dir' -v '/usr/local/texlive/texmf-local' \
-s '//fontconfig' -t elem -n 'dir' -v '/usr/local/share/fonts' input.xml
A saída:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/usr/local/texlive/2017/texmf-dist/fonts/opentype</dir>
<dir>/usr/local/texlive/2017/texmf-dist/fonts/truetype</dir>
<dir>/usr/local/texlive/2017/texmf-dist/fonts/type1</dir>
<dir>/usr/local/texlive/texmf-local</dir>
<dir>/usr/local/share/fonts</dir>
</fontconfig>
Para modificar / editar o arquivo no local - adicione -L
option: xmlstarlet ed -L ....
Para mais detalhes, digite: xmlstarlet ed --help