Я хочу сделать резервную копию файла "/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

2 ответа2

0

В дополнение к информации, предоставленной Анджеем А. Флипом, вам необходимо ввести точку с запятой (;), звездочку (*) и косую черту (/). \ 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
0

sed может конвертировать одну строку в несколько строк.
Взгляните на пример сценария "Доказательство концепции" ниже. Он выводит преобразованный документ "здесь документ".

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .