我正在构建一个 .sed 文件以开始编写多个 apache 服务器的设置脚本。我试图让 sed 与 .conf 文件中的默认网站管理员电子邮件地址相匹配,这与这个 egrep 配合得很好。但是,当我使用 sed 尝试等替代搜索和替换时,我没有收到任何错误,但它也没有做任何替换。我通过再次运行相同的 egrep 命令来测试它。
egrep -o '\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+(\.[A-Za-z]{2,4})?\b' /home/test/httpd.conf
返回
admin@your-domain.com
root@localhost
webmaster@dummy-host.example.com
我尝试使用的 sed 命令是
sed -i '/ServerAdmin/ s/\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+(\.[A-Za-z]{2,4})?\b/MY_ADMIN_ADDRESS@gmail.com/g' /home/test/httpd.conf
运行后,我尝试通过再次运行 egrep 来验证结果,它返回相同的 3 个电子邮件地址,表明没有任何内容被替换。