在追求自动化的过程中,我试图对某些代码进行注释和注释。请注意,这是脚本的一部分,因此我试图隔离具有#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的命令和另一组禁用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"发布于 2017-12-14 12:11:45
启用操作:
sed -Ei 's/^([[:space:]]*)#(return|\}|server|listen|include)/\1\2/' file.conf禁用操作:
sed -Ei 's/^([[:space:]]*)(return|\}|server|listen|include)/\1#\2/' file.confhttps://stackoverflow.com/questions/47812902
复制相似问题