Я пытаюсь автоматизировать подготовку коробки 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