Я пытаюсь автоматизировать подготовку окна Ubuntu Vagrant с помощью сценария 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