Você poderia tentar algo como:
sed -n "/\[fencedtitle\]/{:a;N;/----/!ba;N;s/.*\n/$(tree)\n/};p" file
Mas isso será problemático se a saída de tree
contiver caracteres especiais para regex. Se você salvar a saída de tree
em um arquivo:
tree > my-out
Então você pode lê-lo no sed sem muitos problemas:
sed -n '/\[fencetitle\]/{p;n;p;r my-out
:a;n;/^----$/!ba};p' file
(Sim, o comando r
requer uma nova linha depois disso, nenhum comando pode segui-lo na mesma linha.)
O p;n;p;
apenas imprime o início da cerca, depois lemos o arquivo, depois pulamos tudo até o final da cerca.
Você pode finalizar a linha após o comando r
dividindo o restante em uma expressão sed separada:
sed -ne '/\[fencetitle\]/{p;n;p;r my-out' -e ':a;n;/^----$/!ba};p' file