用sed找到server下满足listen是443,serve_name是www.maydot.cn的代码块在location / 下的proxy_pass这一行替换掉
时间: 2024-04-17 07:27:08 浏览: 17
你可以使用以下的sed命令来找到server下满足listen为443和server_name为www.maydot.cn的代码块,并将其中在location / 下的proxy_pass行进行替换:
```shell
sed -i '/server {/,/}/ {/listen 443;/ {/server_name www.maydot.cn;/ {/location \/ {n; s|^\(\s*proxy_pass\).*|\1 replacement_value;}}}}' nginx.conf
```
这个命令中,正则表达式`/server {/,/}/`会匹配到server块,然后在其中进一步匹配到listen为443和server_name为www.maydot.cn的行。接着,正则表达式`/location \/ {n; s|^\(\s*proxy_pass\).*|\1 replacement_value;}`会在满足条件的代码块中找到location / 下的proxy_pass行,并将其替换为你想要的值(在这里是replacement_value)。
请确保将replacement_value替换为实际的值,并且有足够的权限来修改nginx.conf文件。
相关问题
用sed找到server下listen是443serve_name是www.maydot.cn的代码块并把proxy_pass这一行替换掉
你可以使用以下的sed命令来找到server下listen为443、server_name为www.maydot.cn的代码块,并将其中的proxy_pass行替换掉:
```shell
sed -i '/server {/,/}/ {/listen 443;/ {/server_name www.maydot.cn;/ {n; s|^\(\s*proxy_pass\).*|\1 replacement_value;}}}' nginx.conf
```
这个命令中,正则表达式`/server {/,/}/`会匹配到server块,然后在其中进一步匹配到listen为443和server_name为www.maydot.cn的行。然后,使用`n`命令跳到下一行,即proxy_pass行,并使用替换命令`s|^\(\s*proxy_pass\).*|\1 replacement_value;|`将其替换为你想要的值(在这里是replacement_value)。
请确保将replacement_value替换为实际的值,并且有足够的权限来修改nginx.conf文件。
用sed写出匹配listen443及serve_name为$SERVER_NAME的代码块把proxy_pass这一行替换掉
你可以使用以下的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文件。