ฉันกำลังพยายามจัดเตรียมกล่องเก็บข้อมูลของ 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