用sed写出匹配listen443及serve_name为$SERVER_NAME的代码块把proxy_pass这一行替换掉
时间: 2024-01-30 17:03:02 浏览: 87
Linux Shell脚本编程--sed命令详解.zip_shell sed_命令介绍_脚本 shell
你可以使用以下的sed命令来匹配listen 443和server_name为$SERVER_NAME的代码块,并将其中的proxy_pass行替换掉:
```shell
sed -i '/listen 443.*server_name $SERVER_NAME;/,/}/s|^\(\s*proxy_pass\).*|\1 $PROXY_PASS;|' /etc/nginx/nginx.conf
```
这个命令中的正则表达式`/listen 443.*server_name $SERVER_NAME;/,/}/`匹配以listen 443开始,server_name为$SERVER_NAME结束的代码块。然后,替换命令`s|^\(\s*proxy_pass\).*|\1 $PROXY_PASS;|`将匹配到的代码块中以proxy_pass开头的行替换为`proxy_pass $PROXY_PASS;`。
请确保将$SERVER_NAME和$PROXY_PASS替换为实际的变量值,并且有足够的权限来修改nginx.conf文件。
阅读全文