sed: -e expression #1, unknown option to `s‘解决办法

#!/bin/sh
url=`cat datasource.properties|grep ^monitor.url|cut -d= -f2`
echo $url
user=`cat datasource.properties|grep ^monitor.user|cut -d= -f2`
echo $user
pasd=`cat datasource.properties|grep ^monitor.pasd|cut -d: -f2`
echo $pasd
 
echo $1 $2 $3
sed -i "s/$url/$1/g" datasource.properties
sed -i "s/$user/$2/g" datasource.properties
sed -i "s/$pasd/$3/g" datasource.properties

报错如下:

    sed: -e expression #1, char 13: unknown option to `s'

需要替换的行为:

    monitor.url=http://192.168.25.100:8443/rest

查询资料得知,报错是因为替换的字符串包含有分隔符/

所以这行改一下分隔符就可以解决问题了

改成感叹号!或者| 或者,  等其他来分割

    sed -i "s!$url!$1!g" datasource.properties

    sed -i "s,$url,$1,g" datasource.properties

你可能感兴趣的:(Liunx)