При закрытии подписчики были переданы в рассылку "Интернет: маркетинг, реклама, торговля" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Уважаемые подписчики! Этот выпуск посвящен одной из моих любимых утилит UNIX, потоковому редактору sed.
Почитать можно о программировании портов ввода-вывода в Linux.
Тем, кто интересуется классическим "Аквариумом", творчеством и жизнью БГ, рекомендую почитать книгу Севы Гаккеля. Возможно, она изменит ваше отношение к БГ, или позволит понять, чем именно он привлекает уже третье поколение слушаителей.
Слушать, конечно же, Боба Марли!
sed - потоковый редактор
sed копирует указанный файл (по умолчанию, стандартный входной поток) в стандартный выходной поток, редактируя его в соответствии с командами сценария. При указании опции -f сценарий берется из заданного файла_сценария; эти опции накапливаются. Если используется только одна опция -e и нет опций -f, флаг -e можно не указывать. Опция -n подавляет выдачу в выходной поток по умолчанию.
sed обрабатывает символы дополнительного набора и распознает символы дополнительного набора в комментариях файлов сценариев (см. ниже) в соответствии с локалью, указанной в переменной среды LC_CTYPE (см. LANG в environ(5)), с единственным исключением, описанным для команды y ниже. В регулярных выражениях поиск шаблонов выполняется над символами, а не над байтами, как описано на странице справочного руководства ed(1).
Сценарий состоит из команд редактирования, по одной в строке, имеющих следующий вид:
При обычной работе, sed циклически копирует прочитанную строку в область поиска (pattern space) (если только не осталось чего-нибудь после выполнения команды D), применяет последовательно все команды, адреса которых соответствуют области поиска, и, в конце сценария, копирует область поиска в стандартный выходной поток (если только не указана опция -n), а затем удаляет область поиска.
Некоторые команды используют карман (hold space) для сохранения всей или части области поиска для последующего извлечения.
Адрес представляет собой либо десятичное число - порядковый номер входной строки, накапливающийся от файла к файлу, либо символ $, обозначающий последнюю входную строку, либо контекстный адрес, т.е. /регулярное_выражение/ в стиле ed(1) со следующими изменениями:
В контекстном адресе конструкция \?регулярное_выражение?, где ? - произвольный символ, идентична /регулярному_выражению/. Учтите, что в контекстном адресе \xabc\xdefx второй х используется буквально, так что будет использовано регулярное выражение abcxdef.
Управляющая последовательность \n соответствует новой строке, находящейся в области поиска.
Точка (.) соответствует любому символу в области поиска, за исключением завершающей новой строки.
Команда без адресов соответствует каждой области поиска.
Команда с одним адресом будет применяться для каждой области поиска, соответствующей адресу.
Команда с двумя адресами применяется включительно для всех областей поиска от первой, соответствующей первому адресу, до следующей, соответствующей второму. (Если второй адрес представляет собой число, меньшее или равное номеру строки, выбранному первым адресом, обрабатывается только строка, соответствующая первому адресу.) После этого процесс повторяется и снова ищется соответствие первому адресу.
Можно применять команды редактирования для областей поиска, не соответствующих указанным адресам, если указать функцию отрицания ! (см. ниже).
В следующем списке функций максимально допустимое количество адресов для каждой функции указано в скобках.
Аргумент текст состоит из одной или более строк, все из которых, кроме последней, заканчиваются символом обратной косой (\), скрывающим новую строку. Обратные косые в тексте рассматриваются буквально в строке замены команды s. Аргумент rfile или wfile должен быть последним в строке и перед ним необходимо указать ровно один пробел. Каждый файл wfile создается перед началом обработки. Можно использовать не более 10 различных аргументов wfile.
n | n=1-512. Делать подстановку только для n-ного вхождения регулярного_выражения. |
g | Глобальная подстановка. Подставить вместо всех не перекрывающихся вхождений регулярного_выражения, а не только вместо первого. |
p | Выдать область поиска в выходной поток, если была сделана замена. |
w wfile | Запись. Добавить область поиска к файлу wfile, если была сделана замена. |
Copyright 1994 Novell, Inc.
Copyright 2000 В. Кравчук,
OpenXS Initiative, перевод на русский язык
man grep(1). Выпуск ожидается после 8 марта.
С наилучшими пожеланиями,
В.К.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||