Я хочу сделать резервную копию файла "/etc/nginx/nginx.conf"
А затем отредактируйте его так, чтобы в файле была следующая строка:
include /etc/nginx/sites-enabled/*;
Вместо этого будет отображаться как...
include /etc/nginx/sites-enabled/*;
server {
listen 8081;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect default;
auth_basic "Server Administration";
auth_basic_user_file /etc/nginx/passwords;
}
}
Проблема в том, что я все еще новичок в Linux, и я думал, что смогу использовать sed, но мое новое понимание заключается в том, что он читает строку за строкой, и поэтому не подходит для многострочного контента. Я не уверен, как заставить perl работать с ним, так как некоторые символы будут мешать perl. Мой мозг немного кипит, просто изучая, как работает NGINX... любая помощь будет очень полезна.
Мой нынешний штаб СЕПГ...
Должно работать отлично. Ура! :D
sudo sed -i.bak 's/^ include \/etc\/nginx\/sites-enabled\/\*\;$/&\n \n server {\n listen 8081\;\n \n location \/ {\n proxy_pass http:\/\/127.0.0.1:8080\/\;\n proxy_redirect default\;\n auth_basic "Server Administration"\;\n auth_basic_user_file \/etc\/nginx\/passwords\;\n }\n}\n/' /home/pi/Public/NGINX-test/nginx.conf
решение1
sed
может преобразовать одну строку в несколько строк.
Взгляните на пример скрипта "proof of concept" ниже. Он выводит преобразованный документ "here doc".
#!/bin/sh
sed 's/^include \/etc\/nginx\/sites-enabled\/\*;$/&\nYES!/' <<END
input-line:1
include /etc/nginx/sites-enabled/*;
input-line:3
include /etc/nginx/sites-enabled/*;
END
решение2
В дополнение к информации, предоставленной Andrzej A. Flip, вам необходимо экранировать символы точки с запятой (;), звездочки (*) и косой черты (/). \n делает это новой строкой, и использовать -i.bak для создания резервной копии файла перед внесением изменений с расширением .bak.
sudo sed -i.bak 's/^ include \/etc\/nginx\/sites-enabled\/\*\;$/&\n \n server {\n listen 8081\;\n \n location \/ {\n proxy_pass http:\/\/127.0.0.1:8080\/\;\n proxy_redirect default\;\n auth_basic "Server Administration"\;\n auth_basic_user_file \/etc\/nginx\/passwords\;\n }\n}\n/' /home/pi/Public/NGINX-test/nginx.conf