Alterando um endereço IP
perl -p -i -e 's/VIP_IP=[[:digit:].]+/VIP_IP=192.17.200.100/' file.txt
Ou:
perl -i -pe 's/(VIP_IP=)[[:digit:].]+/${1}192.17.200.100/' file.txt
Ou, se o novo IP estiver em uma variável do shell:
export ip=192.17.200.100
perl -i -pe 's/(VIP_IP=)[[:digit:].]+/${1}$ENV{ip}/' file.txt
Alterando um nome
Suponha que o nosso arquivo se pareça com:
$ cat file.txt
VIP_IP=192.17.200.100
HOST=James
E, suponha que desejamos alterar a palavra (alfabética) depois do HOST. Nesse caso:
export host=Timothy
perl -pe 's/(HOST=)[[:alpha:]]+/${1}$ENV{host}/' file.txt
Se quiséssemos alterar uma palavra alfanumérica, em oposição a uma palavra alfabética pura:
export host=Timothy
perl -pe 's/(HOST=)[[:alnum:]]+/${1}$ENV{host}/' file.txt
Se quiséssemos ser menos restritivos e alterarmos todos e quaisquer caracteres após HOST=
:
export host=Timothy
perl -pe 's/(HOST=).*/${1}$ENV{host}/' file.txt