如何使用sed命令进行搜索并替换特殊字符串?

时间:2015-04-23 16:08:39

标签: bash sed

我正在使用bootstrap脚本在VM上设置服务器。所以,我无法在文件中运行替换字符串的sed命令。

在setup.rb文件中:

token = ENV['SERVER_URL]

所以我想用我的域https://my.domain.com替换ENV ['SERVER_URL']

sed -i -e 's/ENV\\[\'SERVER_URL\'\\]/https\:\\//my.domain.com/g setup.rb

所以它不起作用。请帮我修理一下。 感谢。

2 个答案:

答案 0 :(得分:2)

改为使用外部双引号,以避免必须处理替换参数中的单引号。

sed -i -e "s/ENV\['SERVER_URL'\]/my.domain.com/g" setup.rb

答案 1 :(得分:0)

sed -i -e "s#ENV\['SERVER_URL\]#https://my.domain.com#" setup.rb
  • 使用双引号,因为搜索模式中有单引号
  • #操作中使用其他分隔符(此处为s///),因为/处于替换模式

  • 在域名上注意没有像&那样使用元字符(简单域没有风险,完整的URL)在替换模式中具有特殊含义