Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционная система UNIX.doc
Скачиваний:
94
Добавлен:
01.05.2014
Размер:
1.67 Mб
Скачать

6.14.6. Адресация строк в редакторе

6.14.6.1. Адресная арифметика

Рассмотрим использование указателей строк вида ".", "$", "/.../" и "?...?" в сочетании с действиями "+" и "-". Так, команда:

$-1

выдает предпоследнюю строку текущего файла.

Команда:

$-5, $p

распечатывает последние шесть строк. Если в файле нет шести строк, будет выдано сообщение об ошибке ("?").

Команда:

.-3, .+3p

распечатывает 7 строк, из них три строки до и три строки после текущей строки. Знак "+" может быть опущен. Знак "-" сам по себе представляет собой команду для возврата на одну строку в файле.

Команда:

---

вызывает возврат на три строки, как и команда "-3".

Команда:

-, .s/bad/good/

вызывает замену "bad" на "good" в текущей и пред- шествующей ей строках.

Знаки "+" и "-" могут использоваться при поиске с помощью "/.../", "?...?" и с "$". По команде:

/текст/--

разыскивается строка, содержащая "текст", после чего текущей строкой становится строка вторая перед найденной строкой.

6.14.6.2. Номера строк и указатель текущей строки

Разрешается определять диапазон "n,m" (от строки с номером "n" до строки с номером "m"), где "n" - номер начальной строки, а "m" - номер конечной строки. Весь файл целиком с первой до последней строки задается диапазоном "1, $". Так, команда:

1, $p

вызывает выдачу всех строк файла.

Если известны номера строк, можно получить результат выполнения команды в любой части файла.

Пример.

Команда:

5p

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

В любой момент времени можно определить, каков текущий номер строки. Это делается с помощью команды ".=".

Использование этой команды полезно после внесения многочисленных изменений в файл.

Можно указать несколько строк, задав диапазон "от, до". Указатель текущей строки "." можно использовать на месте начальной или конечной строки диапазона. Так, команда:

., $p

печатает все строки от текущей до конца файла.

6.14.6.3. Изменение указателя текущей строки

При использовании команд поиска просмотр всегда начинается с текущей строки и продолжается в прямом или обратном направлении до тех пор, пока не будет обнаружена строка с искомым текстом. Например, если буфер содержит строки:

.

АБ

.

.

БВ

.

и, если текущая строка - первая, то команда:

/А/, /Б/p

не распечатает строки, расположенные в промежутке от строки "АБ" до строки "БВ", так как при использовании запятой в качестве разделителя указателей строк, номер текущей строки не изменяется после обработки каждого адреса, каждый поиск начинается от текущей строки. В результате будет распечатана одна строка "АБ".

При указании диапазона адресов вместо запятой используется точка с запятой. Символ ";" вызывает установку в то место, которое определяется при вычислении номеров строк. Фактически редактор "перемещает" указатель текущей строки. Команда:

/А/; /Б/p

распечатывает строки в диапазоне от "АБ" до "БВ", т.к. после нахождения строки с "А" эта строка становится текущей и поиск "Б" начинается после этой строки.

Соседние файлы в предмете Операционные системы