Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы OC UNIX_часть3.doc
Скачиваний:
23
Добавлен:
18.04.2015
Размер:
543.23 Кб
Скачать

1.1.3. Команды, использующие два адреса

Третий тип команд редактора ed– команды, которые используют два адреса:

.,.с(change)– изменить. Командаchangeвначале удаляет указанные строки, переходит в режим ввода, затем в интерактивном режиме новый текст разместится на месте удаленных строк. Подобно командамinsertиappendкомандаchangeпереводит редактор в режим ввода.

.,.ma(move)– переместить указанные строки в позицию, задаваемую параметрома($– в конец файла,0– в начало файла, числовой номер строки). Здесь указываются строки, являющиеся источником и приемником. После перемещения значение точки устанавливается в новый адрес последней перемещенной строки. Значение адреса перемещения имеет важное ограничение: он не должен попадать в диапазон перемещаемых строк. Поэтому команда1,4m3не допускается. Перемещение эквивалентно удалению с последующим добавлением текста.

.,.tа(transfer)– переслать копию указанных строк по адресуа. Если командаmoveвыбирает текст из одного места и помещает его в другое, то командаtransferсоздает копию заданного в ней текста и помещает ее после приемника. Следовательно, командаmoveне оказывает влияния на размер файла, а командаtransferувеличивает его. Значение адреса копирования имеет важное ограничение: он не должен попадать в диапазон копируемых строк, поэтому команда2,5t3– не допускается. Значение точки устанавливается в новый адрес последней скопированной строки.

.,.d(delete)– удалить из рабочей копии файла указанные строки. При удалении строк нужно быть очень осторожным, потому что можно удалить строки ошибочно.

u( undo )– отмена изменения, которая служит для отмены действия предыдущей команды.

.,.p(print)– распечатать содержимое указанных строк.

.,.l(list)– командаlочень напоминает командуp, при этом:

  • распечатываются все управляющие символы (символы табуляции, возврата каретки, признаки конца печати строки), которые при обычной печати строки не выводятся;

  • строки, которые не помещаются на экране, усекаются и выводятся как несколько строк.

Например,

\b – возврат на символ,

\t – табуляция.

Почему было бы полезно увидеть на экране дисплея эти коды? Потому, что редактор edи система UNIX рассматривают их, как и другие символы, хотя они и не появляются на экране. Если случайно набрать один из этих управляющих символов в середине команды, система не сможет распознать команду.

.,.j(join)– объединить две или более последовательных строк в одну. Строка, полученная путем объединения, не может быть длиннее установленного предела, обычно равного 256 символам. Несмотря на то, что для объединения строк существует отдельная команда, для их разбивки требуется лишь вставить в нужное место символ возврата каретки, при этом нельзя забывать ставить обратную косую черту перед символом возврата каретки. Командаjинтерпретируется по умолчанию как.,.+1jи объединяет текущую строку со следующей строкой. Текущей строкой (значение точки) становится новая объединенная строка. Следующие строки (если они есть) будут перенумерованы.

.,.s/tx/text/(substitute)– подставить вместо последовательности символовtxна последовательностьtextв указанных строках.

.,.g(global)– используется для модификации других команд с тем, чтобы их действие распространялось на все строки, содержащие определенный текстовый образ. Эта команда выполняется в два этапа. На первом соответствующая программа просматривает весь текст и составляет список строк, содержащих заданный текстовый образ, а на втором ко всем этим строкам применяется команда, следующая за текстовым образом.

.,.v– по своему действию обратная команде «g» . При обработке «v» текст просматривается и составляется список строк, не включающих указанный текстовый образ. Далее, как и при выполнении «g», к строкам из списка применяется команда, следующая за текстовым образом.

1,$w– указанные в команде строки переписать в существующую копию файла.

В командах придерживаются следующих обозначений:

1– первая строка;

$– последняя строка, или конец строки, если он используется между двумя косыми чертами в цепочке при организации поиска;

.– текущая строка;

^– начало строки.

По терминологии системы UNIX знаки ^и$называютсяякорямитекста.