Обычно я прохожу через веб-интерфейс CUPS localhost, чтобы попытаться добавить любой принтер. Вы можете попробовать сделать то же самое для этого последовательного принтера:
http://localhost:631
[Добавить принтер]
[Добавить принтер]
/etc/cups/printers.conf
и измените ttyS0
на соответствующее устройство tty. Перезапустите демон cups:
$ sudo service cups restart
Я предполагаю, что вы хотите заменить ТОЛЬКО AllowOverride none
конкретно в блоке <Directory "/var/www/html">
, а не где-либо еще. Мы можем это сделать.
Краткая версия:
sed -i '/^<Directory "\/var\/www\/html">/,/^<\/Directory>/ {
s/AllowOverride none/AllowOverride all/;
}' httpd.conf
Это говорит о применении команды замены только между указанными строками.
Не забудьте сначала сделать резервную копию своего файла, а diff
их после, чтобы подтвердить, что вы получили то, что хотели.:)
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
игнорировать символы перевода строки, т.е. загружает весь файл. Два ?
, отмеченные знаками вставки, должны исчезнуть. И имейте в виду, что "
не нужно убегать \
(, но это не повредит ).