如何使用sed命令搜索和替换特殊字符串?
How to use sed command for search and replace special string?
我正在编写 bootstrap 脚本以在 VM 上设置服务器。所以,我不能 运行 sed 命令替换文件中的字符串。
在 setup.rb 文件中:
token = ENV['SERVER_URL]
所以我想用我的域名替换 ENV['SERVER_URL'] https://my.domain.com
sed -i -e 's/ENV\[\'SERVER_URL\'\]/https\:\//my.domain.com/g setup.rb
所以它不起作用。请帮我解决它。
谢谢
改为使用外部双引号,以避免必须处理替换参数中的单引号。
sed -i -e "s/ENV\['SERVER_URL'\]/my.domain.com/g" setup.rb
sed -i -e "s#ENV\['SERVER_URL\]#https://my.domain.com#" setup.rb
- 使用双引号因为搜索模式中有单引号
在 s///
操作中使用其他分隔符(此处为 #
),因为 /
处于替换模式
注意不要使用像 &
这样的元字符(简单的域没有风险,完整的 URL 很好)在替换模式中有特殊意义
我正在编写 bootstrap 脚本以在 VM 上设置服务器。所以,我不能 运行 sed 命令替换文件中的字符串。
在 setup.rb 文件中:
token = ENV['SERVER_URL]
所以我想用我的域名替换 ENV['SERVER_URL'] https://my.domain.com
sed -i -e 's/ENV\[\'SERVER_URL\'\]/https\:\//my.domain.com/g setup.rb
所以它不起作用。请帮我解决它。 谢谢
改为使用外部双引号,以避免必须处理替换参数中的单引号。
sed -i -e "s/ENV\['SERVER_URL'\]/my.domain.com/g" setup.rb
sed -i -e "s#ENV\['SERVER_URL\]#https://my.domain.com#" setup.rb
- 使用双引号因为搜索模式中有单引号
在
s///
操作中使用其他分隔符(此处为#
),因为/
处于替换模式注意不要使用像
&
这样的元字符(简单的域没有风险,完整的 URL 很好)在替换模式中有特殊意义