Какой поток получает SIGURG?

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игнорировать символы перевода строки, т.е. загружает весь файл. Два ?, отмеченные знаками вставки, должны исчезнуть. И имейте в виду, что "не нужно убегать \(, но это не повредит ).

0
11.02.2021, 09:46
0 ответов

Теги

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