awk
pode ser usado para isso. O script abaixo só adicionará texto depois de encontrar uma tag <Location />
.
awk '/\<Location \/\>/{ start=1 } {if(start) ++start; if(start==4) print " Allow all"} 1' infile
Para o arquivo de entrada abaixo:
stuff
<Location />
Order allow,deny
</Location>
more
stuff
Este script produz:
stuff
<Location />
Order allow,deny
Allow all
</Location>
more
stuff
Se você quiser substituir várias seções como essa, o mesmo script pode ser facilmente adaptado:
awk '/\<Location \/\>/{ start=1 } {if(start) ++start; if(start==4){print " Allow all"; start=0}} 1' infile