SED:无法替换文件中的行,SED:-e表达式#1,字符32:未知选项为`s';

SED:无法替换文件中的行,SED:-e表达式#1,字符32:未知选项为`s';,sed,Sed,我试图将现有文件中的一行替换为 sed -i -e 's/# elasticsearch.url: "http://localhost:9200"/elasticsearch.url: "http://myOwnHost:9200"/g' config/kibana.yml 但我犯了个错误 sed: -e expression #1, char 32: unknown option to `s' 我可以想办法和办法逃出这里。我对sed很陌生。在您的sed语句中,/字符用作分隔符。e、 g.s

我试图将现有文件中的一行替换为

sed -i -e 's/# elasticsearch.url: "http://localhost:9200"/elasticsearch.url: "http://myOwnHost:9200"/g' config/kibana.yml
但我犯了个错误

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

我可以想办法和办法逃出这里。我对sed很陌生。

在您的
sed
语句中,
/
字符用作分隔符。e、 g.
s/search/replace/g
。由于字符串中有
/
s,这会把事情搞砸。虽然
/
通常用作分隔符,但您可以使用其他字符。在您的情况下,我会使用管道
|
,例如
s |搜索|替换| g
。或者,您可以使用
/
并转义字符串中的斜杠:
\/
,但这会变得混乱。

sed
语句中,
/
字符用作分隔符。e、 g.
s/search/replace/g
。由于字符串中有
/
s,这会把事情搞砸。虽然
/
通常用作分隔符,但您可以使用其他字符。在您的情况下,我会使用管道
|
,例如
s |搜索|替换| g
。或者,您可以使用
/
并转义字符串中的斜杠:
\/
,但这会变得混乱。

您必须用反斜杠转义正斜杠字符

sed -i -e 's/# elasticsearch.url: "http:\/\/localhost:9200"/elasticsearch.url: "http:\/\/myOwnHost:9200"/g' config/kibana.yml

必须用反斜杠转义正斜杠字符

sed -i -e 's/# elasticsearch.url: "http:\/\/localhost:9200"/elasticsearch.url: "http:\/\/myOwnHost:9200"/g' config/kibana.yml

我是否需要转义
?不,除非您决定使用
作为分隔符,这是另一种常见的选择。我是否需要转义
?不,除非您决定使用
作为分隔符,这是另一种常见的选择。这是否回答了您的问题?这回答了你的问题吗?