一条sed语句,节省两个小时

朋友一台服务器上,好几十个网站,更换服务器的时候,nginx 做了升级,修改很多配置文件。最后添加域名的时候,少了 添加了 裸域名。 比如 应该是

server_name shelljiaoben.com www.shelljiaoben.com;

全部配置成了

server_name www.shelljiaoben.com;

通过 sed 一行修改全部的配置及文件

sed  -i -r '/server_name/s/www\.([^ ]+);/\1 &/g' *.conf

含义
1. -i 表示修改后直接保存源文件
2. -r 表示使用启用扩展的正则表达式语法
3. /server_name/ 表示指定到好汉 server_name 的行
4. s 表示提示
5. ([^ ]+) 除去空白字符的其他字符
6. \1 匹配第一个括号内的内容
7. & 表示 www\.([^ ]+); 的内容