Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Удалить указанные строки из пространства шаблонов. Удаленные строки не выводятся. Из ввода читается следующая строка для обработки, начиная с первой команды сценария.

Пример

Удалить все пустые строки:

/-$/d

[address l[,address2]]D
D

Удалить первую часть (до символа новой строки) многострочной копии, созданной командой N, и продолжить редактиро-

 

D

т

вание с первой команды в сценарии. Если эта команда опустошает пространство шаблонов, из ввода читается новая строка, как если бы выполнялась команда d.
Пример
Удалить множественные пустые строки, оставив только одну: /"$/(
N
Г\п$/0
}

[address l[,address2]]g
Передать содержимое специального буфера (см. команды h и Н) обратно в пространство шаблонов, перезаписав существующее содержимое. Ниже приводится пример простого копирования строк.
Пример
Этот сценарий собирает все строки, содержащие слово Item:,
и заменяет ими специальный маркер, расположенный ниже
в тексте. /Item:/H
/<Replace this line with the item list>/g

[address l[,address2]]G
To же, что и g, только специальный буфер добавляется к
пространству шаблонов, не перезаписывая содержимое. В примере показан простой способ вырезания и вставки строк.
Пример
В этом сценарии собираются все строки, содержащие слово Item:. Строки копируются после специального маркера, расположенного далее в файле. Исходные строки со словом Item: удаляются.
/Itera:/{
Н d }
/Summary of items:/G

[address 1 [,address2]]h
Скопировать содержимое пространства копий в специальный временный буфер. Предыдущее содержимое специального буфера уничтожается. Команду h можно использовать для сохранения строки перед редактированием.
Пример
Редактировать строку; отобразить изменения;
отобразить исходный вариант /Linux/-!

h
s/. 'Linux \(.\) .*/\1:/
P
x
}
Пример ввода:
This describes the Linux Is command. This describes the Linux cp command.
Пример вывода:
Is:
This describes the Linux command.
cp:
This describes the Linux cp command.

[address 1 [,address2]]H
Добавить содержимое пространства шаблонов (предваряемое символом новой строки) к содержимому специального
буфера. Символ новой строки добавляется, даже если буфер
пуст. Команда Н обеспечивает пошаговое копирование. См. примеры для команд g и G.

Н

[address text
Вставить текст text перед каждой строкой, соответствующей указанному адресу. (См. описание параметра text в информации по команде а).
Пример
/Item
The five items are listed below:

1
[addressl [,address2]]l
Отобразить содержимое пространства шаблонов, заменяя непечатаемые символы соответствующими выражениями в кодах ASCII. Длинные строки переносятся.

n
[address l[,address2]]n
Прочитать следующую строку ввода в пространство шаблонов. Текущая строка отправляется на стандартный вывод, а следующая становится текущей. Управление передается команде, следующей за п, а не в начало сценария.
Пример
В макросе ms заголовок раздела располагается строкой ниже макроса .NH. Чтобы отобразить все заголовки разделов,
можно использовать такой сценарий:
/Л.мн/{
п Р >

N
[address l[,address2]]N
Добавить следующую строку ввода к пространству шаблонов; две строки разделяются вложенным символом новой строки. (Эта команда предназначена для разрешения проблемы параллельного поиска по шаблонам в двух строках.) Используя \п для нахождения вложенного символа новой строки, можно производить параллельный поиск в строках. См. пример для команды D.
Примеры
Аналогично предыдущему примеру, но вместе со строкой заголовка печатать и строку .NH.
Л\.нн/{ N
Р
}
Объединение двух строк (символ новой строки заменяется пробелом):
Л\.мн/{
N

s/W /
Р
}
N

[addressl[,address2]]p



   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru