Заменить IP-адрес в строке

Я хотел бы изменить IP-адрес в этой строке с помощью некоторого пользовательского ввода:

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

Код также должен работать, если адрес отсутствует:

rmi.sceduling.service.url=

It также должен быть портативным, по крайней мере, для Solaris.

Код, который я использую на данный момент:

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
0
задан 22 March 2011 в 19:02

2 ответа

Вот наивное решение:

sed -i -e "s#rmi\\\\://[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+#$host_ip#"
0
ответ дан 22 March 2011 в 19:02

Переносимое решение, которое должно работать как для Solaris, так и для Ubuntu.

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

. Почему вы все-таки вносите все правки (в этом и некоторых других ваших недавних вопросах) в этот файл application.properties? Мне кажется, что написать этот файл с нуля было бы намного проще.

0
ответ дан 22 March 2011 в 19:02

Другие вопросы по тегам:

Похожие вопросы: