Tôi đang cố gắng tự động hóa việc cung cấp hộp Ubuntu Vagrant với tập lệnh Bash. Tất cả đều ổn, nhưng tôi gặp khó khăn với việc cấu hình Apache để cho phép ghi đè từ .htaccess
các tệp. Trong tập tin cấu hình của tôi, có khối sau:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Tất cả tôi cần làm là thay thế AllowOverride None
bằng AllowOverride all
. Đây có vẻ là một nhiệm vụ cho sed
, nhưng có các <Directory>
khối khác trong tệp cấu hình này mà tôi không muốn cho phép ghi đè.
Làm cách nào tôi có thể sử dụng sed để thay thế một chuỗi cụ thể bằng một chuỗi mới, khi chuỗi cụ thể đó xảy ra giữa hai chuỗi cụ thể khác?
Nói cách khác, làm thế nào tôi AllowOverride None
chỉ có thể thay thế khi nó xuất hiện giữa <Directory /var/www/>
và </Directory>
?
Tôi có thể sử dụng lệnh sau để lấy khối mà tôi quan tâm:
sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default