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 .htaccess
plikó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 None
z 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 None
tylko 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