UNIX — универсальная среда программирования - Керниган Брайан Уилсон Страница 141
- Категория: Компьютеры и Интернет / Интернет
- Автор: Керниган Брайан Уилсон
- Страниц: 187
- Добавлено: 2020-10-30 19:02:01
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала
UNIX — универсальная среда программирования - Керниган Брайан Уилсон краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «UNIX — универсальная среда программирования - Керниган Брайан Уилсон» бесплатно полную версию:UNIX — универсальная среда программирования - Керниган Брайан Уилсон читать онлайн бесплатно
Команды, управляемые командами g или v, также могут использовать номера строк, текущая строка настраивается по очереди на каждую выбранную строку:
g/thing/.,.+1р Печатать каждую строку с thing и следующую g/^\.EQ/.1, /^\.EN/s/alpha/beta/gp Заменять alpha на beta только между .EQ и .EN и печатать измененные строки Перемещение и копирование строкКоманда m перемещает группу смежных строк, а команда t копирует группу строк:
<i>m</i>,<i>n</i>,md Переместить строки m по n за строку d <i>m</i>,<i>n</i>,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 (пробелы не добавляются):
<i>m</i>,<i>n</i>j объединяет строки с m по n в одну jp Объединить текущую строку со следующей и печатать -,.jp Объединить предыдущую строку с текущей и печататьПо умолчанию принимается диапазон .,.+1;
Строки можно расщепить командой подстановки, отделив новую строку:
s/part1part2/part1\part2/ Расщепить строку на две части s/ /\ /g Расщепить по каждому пробелу. Оставить одно слово на строкуТекущей становится последняя созданная строка.
Чтобы манипулировать не только целыми фрагментами, выбираемыми регулярными выражениями, но и их соответствующими частями, используйте помеченные регулярные выражения: если конструкция \(...\) появляется в регулярном выражении, то часть соответствующего ей фрагмента доступна как \1. Возможно до девяти помеченных выражений, на которые ссылаются с помощью \1, \2 и т.д.
s/\(...\)\(.*\)/\2\1/ Поместить 3 первых символа в конец /\(..*\)\1/ Найти строки, содержащие повторяющиеся смежные цепочки символов Команды, работающие с файламиКомандам r и w (читать и писать) могут предшествовать номера строк:
Жалоба
Напишите нам, и мы в срочном порядке примем меры.