Брайан Керниган - UNIX — универсальная среда программирования Страница 85
- Категория: Компьютеры и Интернет / Программное обеспечение
- Автор: Брайан Керниган
- Год выпуска: -
- ISBN: -
- Издательство: -
- Страниц: 103
- Добавлено: 2019-07-03 10:23:42
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала
Брайан Керниган - UNIX — универсальная среда программирования краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Брайан Керниган - UNIX — универсальная среда программирования» бесплатно полную версию:В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.
Брайан Керниган - UNIX — универсальная среда программирования читать онлайн бесплатно
Таблица П.1.1: Регулярные выражения редактора
Символу перевода строки не соответствует ни одно регулярное выражение.
Образец Соответствие /^$/ пустая строка, т.е. только конец строки /./ непустая, т.е. по крайней мере один символ /^/ все строки /thing/ thing где либо в строке /^thing/ thing в начале строки /thing$/ thing в конце строки /^thing$/ строка, состоящая лишь из thing /thing.$/ thing плюс любой символ в конце строки /thing\.$/ thing. в конце строки /\/thing\// /thing/ где либо в строке /[tT]hing/ thing или Thing где либо в строке /thing[0-9]/ thing, за которой одна цифра /thing[^0-9]/ thing, за которой не цифра /thing[0-9][^0-9]/ thing, за которой цифра и не цифра /thing1.*thing2/ thing1, затем любая строка, затем thing2 /^thing1.*thing2$/ thing1 в начале и thing2 в концеРегулярные выражения, использующие *, выбирают самое левое совпадение с образцом до тех пор, пока это возможно. Отметим, что x* может соответствовать нулю, а xx* одному или более символу.
Глобальные командыГлобальные команды g и v управляют вызовом одной или большего числа других команд, выполняющих преобразования в множестве строк, выбранных регулярным выражением. Команда g наиболее часто используется для печати, подстановки или удаления множества строк:
m,ng/re/cmd Для всех строк между m и n, которые соответствуют re выполнить cmd m,nv/re/cmd Для всех строк между m и n, которые не соответствуют re выполнить cmdКомандам g и v могут предшествовать номера строк, ограничивающие диапазон; по умолчанию принимается диапазон 1,$:
g/.../p Печатать все строки, соответствующие регулярному выражению ... g/.../d Убрать все строки соответствующие ... g/.../s//repl/p Заменить первое вхождение ... в каждой строке на 'repl', печатать измененные строки g/.../s//repl/gp Заменить каждое ... на 'repl' , печатать измененные строки g/.../s/pat/repl/ В строках, соответствующих ..., заменить первую 'pat' на 'repl' g/.../s/pat/repl/p В строках, соответствующих ..., заменить первую 'pat' на 'repl' и печатать g/.../s/pat/repl/gp В строках, соответствующих ..., заменить все 'pat' на 'repl' и печатать v/.../s/pat/repl/gp В строках, не соответствующих ..., заменить все 'pat' на 'repl' и печатать v/^$/p Печатать все непустые строки g/.../cmd1\cmd2\cmd3 Выполнять составные команды с единственной g, присоединить \ к каждой cmd кроме последнейКоманды, управляемые командами g или v, также могут использовать номера строк, текущая строка настраивается по очереди на каждую выбранную строку:
g/thing/.,.+1р Печатать каждую строку с thing и следующую g/^\.EQ/.1, /^\.EN/s/alpha/beta/gp Заменять alpha на beta только между .EQ и .EN и печатать измененные строки Перемещение и копирование строкКоманда m перемещает группу смежных строк, а команда t копирует группу строк:
m,n,md Переместить строки m по n за строку d m,n,td Скопировать строки m по n за строку dЕсли исходные строки не определены, используется текущая строка. Строка назначения d не может быть в диапазоне m,n-1. Ниже приведено несколько общих идиом, включающих m и t.
m+ Поместить текущую строку после следующей (переставить) m-2 Поместить текущую строку перед предыдущей m-- То же самое: это то же, что -2 m- Ничего не делать m$ Поместить текущую строку в конец (m0 — поместить в начало) t. Дублировать текущую строку (t$ дублирует в конце) -,.t. Дублировать предыдущую и текущую строки 1,$t$ Дублировать все множество строк g/^/m0 Инвертировать порядок строк Метки и номера строкКоманда = печатает номер строки $ (слабое умолчание), .= печатает номер текущей строки и т.д. Положение текущей строки не изменяется.
Команда kc метит нужную строку буквой с; впоследствии на эту строку можно ссылаться с помощью 'c. Команда k не меняет положение текущей строки. Метки удобны при перемещении больших фрагментов текста, поскольку они остаются привязанными к строкам, как показано в приведенной ниже последовательности:
/.../ka Найти строку ... и пометить буквой a /.../kb Найти строку ... и пометить буквой b 'a,'bp Печатать целый диапазон, чтобы быть уверенным /.../ Найти нужную строку 'а,'bm Поместить выбранные строки после нее Объединение, расщепление и реорганизация строкСтроки могут быть объединены с помощью команды j (пробелы не добавляются):
m,nj объединяет строки с m по n в одну jp Объединить текущую строку со следующей и печатать -,.jp Объединить предыдущую строку с текущей и печататьПо умолчанию принимается диапазон .,.+1;
Строки можно расщепить командой подстановки, отделив новую строку:
s/part1part2/part1\part2/ Расщепить строку на две части s/ /\ /g Расщепить по каждому пробелу. Оставить одно слово на строкуТекущей становится последняя созданная строка.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.