Substituir o endereço IP em uma string

0

Gostaria de alterar o endereço IP nesta string com alguma entrada do usuário:

rmi.sceduling.service.url=rmi\://192.168.0.19\:1199/ScedulingService

O código também deve funcionar se não houver endereço:

rmi.sceduling.service.url=

Ele também deve ser portátil, pelo menos para o Solaris.

O código que estou usando no momento:

value='grep 'rmi' application.properties \
| awk -F":" '{print $2}' \
| awk -F"\'" '{print $1}'
| cut -d '/' -f 3-5 '

sed -e "s/$value/$host_ip/g" application.properties > file.tmp \
&& mv file.tmp application.properties
    
por moata_u 22.03.2011 / 15:52

2 respostas

1

Uma solução portátil que deve funcionar tanto no solaris quanto no ubuntu

ed -s application.properties << EOF
  g/=rmi\\:\/\/[^\]*/s||=rmi\\://$host_ip|
  w
EOF

Por que você está fazendo todas essas edições (nesta e em várias de suas outras perguntas recentes) neste arquivo application.properties afinal? Parece-me que apenas escrever esse arquivo do zero seria muito mais fácil.

    
por geirha 22.03.2011 / 23:44
2

Aqui está uma solução ingênua:

sed -i -e "s#rmi\\://[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+#$host_ip#"
    
por l0b0 22.03.2011 / 17:09