简体   繁体   English

在Ubuntu中用sed替换字符串

[英]Replacing strings with sed in ubuntu

I have a config file with such value: 我有一个具有这样的值的配置文件:

SITE_URL=http://domain.com

So I am trying to replace it with something like development.local.dev with sed, but not sure how to escape the domain correctly. 所以我试图用sed将其替换为诸如development.local.dev之类的东西,但不确定如何正确地转义域。 Tried a lot of something like this: 尝试了很多这样的事情:

sed -i -e 's/SITE_URL=http://domain\.com/SITE_URL=development.local.dev/g' .env

But keep getting: sed: -e expression #1, char 19: unknown option to `s' 但是请继续获取:sed:-e表达式#1,字符19:`s'的未知选项

It is because / is used a regex delimiter and it is used in your search pattern as well. 这是因为/用于正则表达式定界符,并且也在搜索模式中使用。

You can use an alternate delimiter eg ~ in sed : 您可以使用备用分隔符如~sed

sed '/^SITE_URL=/s~http://domain\.com~development.local.dev~' file
SITE_URL=development.local.dev

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM