Próbuję zautomatyzować obsługę administracyjną skrzynki Ubuntu Vagrant za pomocą skryptu Bash. Wszystko jest w porządku, ale mam problemy z konfiguracją Apache, aby zezwalać na zastępowanie .htaccessplików. W moim pliku konfiguracyjnym znajduje się następujący blok:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Wszystko muszę zrobić, to wymienić AllowOverride Nonez AllowOverride all. To wydaje się być zadaniem sed, ale <Directory>w tym pliku konfiguracyjnym są inne bloki, w których nie chcę zezwalać na zastąpienie.
Jak mogę użyć sed, aby zastąpić określony ciąg nowym ciągiem, gdy ten określony ciąg występuje między dwoma innymi określonymi ciągami?
Innymi słowy, w jaki sposób mogę zastąpić AllowOverride Nonetylko wtedy, gdy pojawia się pomiędzy <Directory /var/www/>i </Directory>?
Mogę użyć następującego polecenia, aby uzyskać blok, który mnie interesuje:
sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default