Использование sed для включения.файлы htaccess в конфигурации Apache

Я пытаюсь автоматизировать подготовку коробки Ubuntu бродяга с сценарием Bash. Все хорошо, но у меня возникли трудности с настройкой Apache, чтобы разрешить переопределения .htaccess файлы. В моем конфигурационном файле есть следующий блок:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

все, что мне нужно сделать, это заменить AllowOverride None С AllowOverride all. Это, кажется, задача для sed, но есть и другие <Directory> блоки в этом конфигурационном файле, где я не хочу, чтобы переопределить.

как я могу использовать sed, чтобы заменить определенную строку новой строкой, когда эта конкретная строка возникает между двумя другими определенными строками?

другими словами, как я могу заменить AllowOverride None только когда он появляется между <Directory /var/www/> и </Directory>?

я могу использовать следующую команду, чтобы получить блок меня интересует:

sed -n '/<Directory /var/www/>/,/</Directory>/p' 000-default
11
задан JakeGould
16.11.2022 1:53 Количество просмотров материала 2577
Распечатать страницу

1 ответ

sed поддерживает диапазоны шаблонов в следующем виде:

sed '/startpattern/,/endpattern/ <sed-commands>' file

например:

sed '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride all/' httpd.conf
11
отвечен suspectus 2022-11-17 09:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх