通过sed更新参数问题

时间:2017-06-22 06:35:43

标签: linux bash sh rhel7

在我的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

1 个答案:

答案 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