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