使用SED在NGINX.CONF文件中注释掉SSL

时间:2017-12-14 12:01:01

标签: bash sed

在追求自动化方面,我试图在某些代码中注释和评论。请注意,这是脚本的一部分,所以我试图隔离具有 #ssl_system

的特定行

#return 301 https://$server_name$request_uri; #ssl_system

#} #ssl_system

#server { #ssl_system

    # SSL configuration 
    #listen 443 ssl; #ssl_system
    #listen [::]:443 ssl; #ssl_system
    expires $expires;
    #include snippets/ssl-newdomain.com.conf; #ssl_system
    #include snippets/ssl-params.conf; #ssl_system

之后

return 301 https://$server_name$request_uri; #ssl_system

} #ssl_system

server { #ssl_system

    # SSL configuration 
    listen 443 ssl; #ssl_system
    listen [::]:443 ssl; #ssl_system
    expires $expires;
    include snippets/ssl-newdomain.com.conf; #ssl_system
    include snippets/ssl-params.conf; #ssl_system

实际上,它是一种启用和禁用SSL的方法。

我正在尝试使用SED:

这有效:

sudo sed -i -e "s|#server_name newdomain.com www.newdomain.com; #ssl_system|server_name newdomain.com www.newdomain.com; #ssl_system|g" "/var/www/srv/templates/nginx.tpl"

这不是:

sudo sed -i "s|#return 301 https://$server_name$request_uri; #ssl_system|return 301 https://$server_name$request_uri; #ssl_system|g" "/var/www/srv/templates/nginx.tpl"

我希望有一组启用SSL的命令,以及另一组禁用它的命令。

我不太确定我做错了什么,但任何见解都会很棒。

更新

这有效

sudo sed -i "s|#return 301 https://[$]server_name[$]request_uri; #ssl_system|return 301 https://[$]server_name[$]request_uri; #ssl_system|g" "/var/www/srv/templates/nginx.tpl"

1 个答案:

答案 0 :(得分:0)

启用 操作:

sed -Ei 's/^([[:space:]]*)#(return|\}|server|listen|include)/\1\2/' file.conf

停用 操作:

sed -Ei 's/^([[:space:]]*)(return|\}|server|listen|include)/\1#\2/' file.conf