Я хочу просмотреть файл (в данном случае это apache2.conf), выполнить поиск строки (), отмечающей начало раздела, и изменить другую строку (AllowOverride None на AllowOverride All) в этом разделе.
Строка, которую я хочу изменить, может быть, а может и не быть строкой рядом с началом раздела, но я хочу изменить только первый раз.
Вот пример из apache2.conf:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/> <= this is the begining of the section
Options Indexes FollowSymLinks
AllowOverride None <= this is the line I want to change
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
С помощью друга я пришел к этому:
sed '/"<Directory \/var\/www\/>"/,$ {s/"AllowOverride None"/"AllowOverride All"/ }' apache2.conf
но дело в том, что это не работает.Я ожидал, что AllowOverride None
будет AllowOverride All
после прохождения sed.
Есть ли какое-нибудь решение?Что я делаю не так?