@David138

Как заменить строку в файле с помощью sed?

В файле /etc/apache2/apache2.conf хочу заменить строку None на All. например, так:
<Directory /var/www/>
	Options Indexes FollowSymLinks
        AllowOverride None
	Require all granted
</Directory>

преобразовать в это:
<Directory /var/www/>
	Options Indexes FollowSymLinks
        AllowOverride All
	Require all granted
</Directory>


Я делаю таким образом:
sudo sed '172c\ AllowOverride All' -i /etc/apache2/apache2.conf
Но это не вариант, потому что не факт, что может быть именно строка 172 со значением AllowOverride None. Как правильно решить эту проблему?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
smorman
@smorman
When In Rome do as The Romans do...
Не надо ничего выдумывать с номером строки, а просто заменить одно на другое:
(с одинарными кавычками)
sudo sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf


или
(с двойными кавычками)
sudo sed -i "s/AllowOverride None/AllowOverride All/" /etc/apache2/apache2.conf
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
sed -i '/\/var\/www\//,/\/Directory/s/AllowOverride None/AllowOverride All/g' YOURFILE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы