Категории
Самые читаемые
ChitatKnigi.com » 🟢Компьютеры и Интернет » Интернет » UNIX — универсальная среда программирования - Керниган Брайан Уилсон

UNIX — универсальная среда программирования - Керниган Брайан Уилсон

Читать онлайн UNIX — универсальная среда программирования - Керниган Брайан Уилсон
1 ... 137 138 139 140 141 142 143 144 145 ... 187
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

Команды, управляемые командами 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 (читать и писать) могут предшествовать номера строк:

1 ... 137 138 139 140 141 142 143 144 145 ... 187
Перейти на страницу:
Открыть боковую панель
Комментарии
Jonna
Jonna 02.01.2025 - 01:03
Страстно🔥 очень страстно
Ксения
Ксения 20.12.2024 - 00:16
Через чур правильный герой. Поэтому и остался один
Настя
Настя 08.12.2024 - 03:18
Прочла с удовольствием. Необычный сюжет с замечательной концовкой
Марина
Марина 08.12.2024 - 02:13
Не могу понять, где продолжение... Очень интересная история, хочется прочесть далее
Мприна
Мприна 08.12.2024 - 01:05
Эх, а где же продолжение?