Многотольская строка Заменить внутреннюю метку разметки

Обычно я прохожу через веб-интерфейс CUPS localhost, чтобы попытаться добавить любой принтер. Вы можете попробовать сделать то же самое для этого последовательного принтера:

  1. Наведите веб-браузер на http://localhost:631
  2. Выберите [Добавить принтер]
  3. Заполните имя, местоположение и описание.
  4. Выберите устройство "Serial Port #1".
  5. Заполните соответствующие настройки скорости передачи данных по четности и т.д..
  6. Выберите нужную марку принтера.
  7. Выберите нужную модель принтера, нажмите [Добавить принтер]
  8. Поскольку последовательный порт не отображается в списке устройств CUPS, его нужно изменить на соответствующее устройство tty:
  9. Отредактируйте файл /etc/cups/printers.conf и измените ttyS0 на соответствующее устройство tty.
  10. Перезапустите демон cups:

    $ sudo service cups restart
    

Ссылки

0
27.12.2018, 17:41
2 ответа

Я предполагаю, что вы хотите заменить ТОЛЬКО AllowOverride noneконкретно в блоке <Directory "/var/www/html">, а не где-либо еще. Мы можем это сделать.

Краткая версия:

sed -i '/^<Directory "\/var\/www\/html">/,/^<\/Directory>/ {
    s/AllowOverride none/AllowOverride all/;
}' httpd.conf

Это говорит о применении команды замены только между указанными строками.

Не забудьте сначала сделать резервную копию своего файла, а diffих после, чтобы подтвердить, что вы получили то, что хотели.:)

1
28.01.2020, 02:30

sed, будучи текстовым инструментом *nix, основан на строках. Для работы по нескольким линиям необходимо принять определенные меры. Почему не

sed 's/AllowOverride none/AllowOverride all/' file

удовлетворить ваши потребности?

РЕДАКТИРОВАТЬ:или, если вы хотите изменить только строку в этом абзаце «каталога»,

sed '/<Directory "\/var\/www\/html">/,/<\/Directory>/ s/AllowOverride none/AllowOverride all/' file

РЕДАКТИРОВАТЬ:С помощью трех небольших адаптаций ваш собственный скрипт работает корректно:

sed    's/\(Directory \"\/var\/www\/html\">.*?\)AllowOverride none\(.*?<\/Directory>\)/\1AllowOverride all\2/' file
sed -z 's/\(Directory \"\/var\/www\/html\">.*\)AllowOverride none\(.*<\/Directory>\)/\1AllowOverride all\2/' file
     ^                                       ^                        ^ 

-z(--нулевые -данные, отдельные строки символами NUL; ср.man sed)заставляет sedигнорировать символы перевода строки, т.е. загружает весь файл. Два ?, отмеченные знаками вставки, должны исчезнуть. И имейте в виду, что "не нужно убегать \(, но это не повредит ).

1
28.01.2020, 02:30

Теги

Похожие вопросы