SED:无法替换文件中的行,sed:-e expression#1,char 32:`s'的未知选项

时间:2016-04-22 14:05:13

标签: sed

我正在尝试将现有文件中的单行替换为

UPDATE 
  TempStaging
SET 
  pending = 'running'
WHERE
  scan IN (SELECT TOP 5 scan FROM TempStaging WHERE pending = 'outstanding' ORDER BY scan)

但我收到错误

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

我可以弄清楚如何以及如何逃离这里。我对sed很新。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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