Мне нужно добавить содержимое текстового файла между некоторыми заполнителями в другом текстовом файле. (. В частности, я пытаюсь обойти Nginx include limitation inside upstream blocks)добавить содержимое файла между заполнителями в другом файле
Мой файл конфигурации основной Nginx /etc/nginx/nginx.conf
выглядит следующим образом:
## START UPSTREAM
## END UPSTREAM
http {
...
}
Мой сервер вверх файл /etc/nginx/upstream.conf
выглядит следующим образом:
upstream wordpress {
server 10.0.0.1;
server 10.0.0.2;
...
}
Я хочу скопировать содержимое /etc/nginx/upstream.conf
между ## START UPSTREAM
и ## END UPSTREAM
блоков. Желаемый результат:
## START UPSTREAM
upstream wordpress {
server 10.0.0.1;
server 10.0.0.2;
...
}
## END UPSTREAM
http {
...
}
До сих пор я пытался использовать sed
(с помощью otherStackOverflowsolutions):
sed -i '/## START UPSTREAM/,/## END UPSTREAM/ r /etc/nginx/upstream.conf' /etc/nginx/nginx.conf
Однако приведенный выше код не работает - это просто терпит неудачу. Как изменить sed для правильной замены всего текста между заполнителями?
Заранее благодарен!
Я получаю сообщение об ошибке: SED: -e выражение # 1, символ 1: неизвестная команда: '-» –
Oops из ошибка с флагами - см. править. – potong
А, спасибо, сейчас работает. Однако каждый раз, когда я запускаю команду, он дублирует блок следующим образом: http://pastebin.com/Zvv8eb3e. Как я могу убедиться, что он также заменяет все содержимое текущего блока? –