sed 将字符串替换为 .和替换字符串有 .也

sed 将字符串替换为 .和替换字符串有 .也

我的 myfile.conf 包含以下内容:

ServerAlias *.mysite.com

我正在尝试转换为:

ServerAlias *.xxmysite.com

但我得到:

ServerAlias *.xx.mobilsem.com

areemplazar="ServerAlias *."
reemplazo="ServerAlias *.xx"
sed -i ''  -- "s|${areemplazar}|${reemplazo}|g"  ./myfile.conf

当我使用“ServerAlias *”等转义点时。 ,没有替代。

我究竟做错了什么 ?

答案1

作为正则表达式元字符的句点.和星号*应该被转义以按字面意思对待它们:

输入文件示例:

$ cat input.txt
ServerAlias *.mysite.com

sed 's/ServerAlias \*\./&xx/' input.txt
ServerAlias *.xxmysite.com

相关内容