Isso seria melhor feito com uma biblioteca XML, mas aqui está em sed ...
Sed tem os comandos i
e a
para inserir e anexar linhas. Eu acho que o script a seguir ajudará.
sed -n '/log4jConfigLocation/=' < test.test |\
while read index; do
sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search
done
A primeira parte, 'sed -n' / log4jConfigLocation / = 'irá obter os números de linha que possuem' log4jConfigLocation '. A próxima parte usa esses números de linha em dois comandos: insira uma linha 1 acima e anexe linhas de 8 linhas abaixo.
Existe uma maneira melhor de usar o buffer de espera do sed, mas eu não estou familiarizado o suficiente com isso; Se estiver interessado, pode ver o este guia . Por fim, se você for trabalhar com esse tipo de coisa regularmente, verifique o XMLStarlet .