Войти

Показать полную графическую версию : Заменить строку в определённом месте файла


DJ Mogarych
07-10-2017, 16:47
Добрый день!

Подскажите, пожалуйста: есть ли способ заменить строку в конфигурационном файле (в данном случае /etc/apache2/apache2.conf) конкретно в разделе
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Нужно заменить AllowOverride None на AllowOverride All, не заходя руками во всякие nano, vim и т. п.
Причём, менять нужно именно в этом разделе, так как в этом файле строки AllowOverride None встречаются не раз. Есть ли у sed или ещё у какой-то утилиты что-нибудь типа "Найти строку с содержанием <Directory /var/www/>, затем после неё заменить такую-то строку на другую"? По номерам строк искать не вариант, потому что этот раздел может оказаться и в другом месте файла на другой машине. По номеру вхождения, конечно, точнее, но мало ли что может быть.

Есть ли способ однозначно определить эту строку в этом конкретном разделе?

Kent
22-10-2017, 00:05
Наверняка можно с помощью 'sed'.
Посмотрите здесь (http://sed.sourceforge.net/sed1line.txt) и здесь (http://emulek.github.io/sed/).

Ylik
04-01-2018, 19:51
Если у вас много файлов, то пора знать sed и sh. А если файл один, отредактируйте его в любом "блокноте".




© OSzone.net 2001-2012