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