使用sed命令替换行上的字符串

时间:2017-07-05 05:53:28

标签: regex linux bash sed

我在文件中有以下内容

return o.baseUrl="http://info.example.com/api/v1/",a.init=t,o.login=e(o.baseUrl+"login",{email:"@email",password:"@password"}

我想将info.example.com替换为api.example.com

目前我正在使用

sed -i "s/^info\.example\.com.*$/api.example.com/g" /var/html/www/index.js

但这不起作用。 我对正则表达不太了解。 有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

sed中,您可以提供要替换的确切表达式。

sed 's/info\.example.com/api.example.com/g' file

答案 1 :(得分:1)

^锚点在行的开头匹配info\.example\.com

在你的情况下,锚是没用的。从您的模式中删除^$

sed -i 's/info\.example\.com/api.example.com/g' /var/html/www/index.js

有关锚点here的更多信息。