在我的bash脚本中。我有如下
HOST_IP=`hostname -I`
sed -i -e "/dirParam\.dprop_web_service_host=/ s/=.*/=http://$HOST_IP:9001/datasources/$INSTANCE" -e "s/\r$//" $SCB_ORDM/dir.properties
在: directorParam.dprop_web_service_host = http://localhost:9001
执行上述脚本时。我收到错误消息
sed:-e表达式#1,字符50:“s'
的未知选项
我期待: directorParam.dprop_web_service_host = http://10.10.405.30:9001
答案 0 :(得分:1)
s
之后的下一个字符(替换命令)是/
所以它是分隔符,它必须在模式中转义并替换字符串
sed -i -e "/dirParam\.dprop_web_service_host=/ s/=.*/=http:\/\/$HOST_IP:9001\/datasources\/$INSTANCE/" -e "s/\r$//" $SCB_ORDM/dir.properties
否则可以使用另一个分隔符
sed -i -e "/dirParam\.dprop_web_service_host=/ s@=.*@=http://$HOST_IP:9001/datasources/$INSTANCE@" -e "s/\r$//" $SCB_ORDM/dir.properties