Outra opção, com sed:
sed -re '/^(SAP_PROD|GOLD_PROD|EVENTS_SAP) =/,/^$/s/HOST = sape-scan/HOST = sapi-scan/' tnsnames.ora
- ativar expressões regulares estendidas (
-r
) para a alternância|
regex - pegue o próximo parâmetro (o texto citado) como uma expressão para avaliar (
-e
) - entre as linhas agrupadas por "SAP_PROD", "GOLD_PROD" ou "EVENTS_SAP" no início da linha, seguidas por espaço e sinal de igual, até uma linha em branco,
- pesquise e substitua o texto "HOST = sape-scan" pelo texto "HOST = sapi-scan"
- no arquivo tnsnames.ora
Use a versão acima para testar de forma não destrutiva suas alterações, talvez com:
sed ... tnsnames.ora > tnsnames.new
diff tnsnames.ora tnsnames.new
... para ver o que mudou. Em muitas implementações de sed, você pode adicionar um sinalizador -i
para fazer as alterações "no local".