我想通过一些用户输入来更改此字符串中的 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 文件进行所有这些编辑(在这个问题和您最近的几个问题中)?在我看来,从头开始编写该文件会容易得多。