替换字符串中的 IP 地址

替换字符串中的 IP 地址

我想通过一些用户输入来更改此字符串中的 IP 地址:

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

如果没有地址,代码也应该可以工作:

rmi.sceduling.service.url=

它也应该是可移植的,至少对于 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

答案1

这是一个简单的解决方案:

sed -i -e "s#rmi\\\\://[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+#$host_ip#"

答案2

一个可以在 solaris 和 ubuntu 上运行的可移植解决方案

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

您为什么要对这个 application.properties 文件进行所有这些编辑(在这个问题和您最近的几个问题中)?在我看来,从头开始编写该文件会容易得多。

相关内容