Книги онлайн » Книги » Компьютеры и Интернет » Интернет » 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/part1part2/ Расщепить строку на две части s/ / /g Расщепить по каждому пробелу. Оставить одно слово на строку

Текущей становится последняя созданная строка.

Чтобы манипулировать не только целыми фрагментами, выбираемыми регулярными выражениями, но и их соответствующими частями, используйте помеченные регулярные выражения: если конструкция (...) появляется в регулярном выражении, то часть соответствующего ей фрагмента доступна как 1. Возможно до девяти помеченных выражений, на которые ссылаются с помощью 1, 2 и т.д.

s/(...)(.*)/21/ Поместить 3 первых символа в конец /(..*)1/ Найти строки, содержащие повторяющиеся смежные цепочки символов Команды, работающие с файлами

Командам r и w (читать и писать) могут предшествовать номера строк:

Перейти на страницу:
В нашей электронной библиотеке 📖 можно онлайн читать бесплатно книгу UNIX — универсальная среда программирования - Керниган Брайан Уилсон. Жанр: Интернет. Электронная библиотека онлайн дает возможность читать всю книгу целиком без регистрации и СМС на нашем литературном сайте kniga-online.com. Так же в разделе жанры Вы найдете для себя любимую 👍 книгу, которую сможете читать бесплатно с телефона📱 или ПК💻 онлайн. Все книги представлены в полном размере. Каждый день в нашей электронной библиотеке Кniga-online.com появляются новые книги в полном объеме без сокращений. На данный момент на сайте доступно более 100000 книг, которые Вы сможете читать онлайн и без регистрации.
Комментариев (0)