(файл) печатает или заменяет имя запомненного файла:f
Печатать имя запомненного файла f file
Установить запомненное имя на 'file
'
Команда
e
(редактировать) вновь вызывает ed с запомненным или новым файлом:e
Начать редактировать запомненный файл e file
Начать редактировать 'file
'
Команда
е
защищена тем же способом, что и q
: если вы не записали измененную версию, первая команда е
выдает сообщение об ошибке; е
вновь инициализирует редактор независимо от внесения изменений. В некоторых системах ed
связан с е
, так что одна и та же команда (е filename
) может использоваться внутри и вне редактора.ШифрованиеФайлы могут быть зашифрованы по записи и дешифрованы при чтении с помощью команды
x
; пароль будет запрошен. Шифрование происходит тем же способом, что и в crypt(1)
. В некоторых системах команда x
заменена на X
(прописную букву) во избежание случайностей.Сводка командВ табл. П.1.2 перечислены команды редактора, а в табл. П.1.3 допустимые номера строк. Каждой команде предшествует нуль, один или два номера строк, указывающие число используемых строк, если их нет, принимается соглашение по умолчанию. За большинством команд может следовать буква p для вывода последней обработанной строки или 1 для формата списка. Текущей обычно становится последняя обработанная строка; настройка не меняется командами
f
, k
, w
, x
, =
, !
..а
Выполнять ввод до тех пор, пока не напечатана строка, содержащая только '.
' .,.с
Заменить строки, новый текст заканчивается так же, как для команды а
.,.d
Исключить строки е file
Вновь начать редактировать file
. Редактирование начинается даже в том случае, если исправления не записаны f file
Запомнить имя файла как file
1,$g/re/cmds
Выполнить cmds
для каждой строки, соответствующей регулярному выражению re; отдельные команды в cmds
разделены \newline
(\
+"перевод строки") .i
Вставить текст перед строкой; он заканчивается так же, как для команды a
.,.+1j
.Соединить строки в одну .kc
Пометить строку буквой с
...l
Перечислить строки, делая невидимые символы видимыми .,.m line
Переместить строки после строки line
.,.p
Печатать строки q
Выйти. Q
выходит, даже если исправления не записаны $r file
Читать file
.,.s/re/new/
Заменить new
на то, что соответствует re .,.t line
Скопировать строки после line
.u
Аннулировать последнюю подстановку в строке (только одну) 1,$v/re/cmds
Выполнить команды ed cmds
для каждой строки, не соответствующей re
1,$w file
Записать строки в файл; W
добавляет (строки к файлу) вместо того чтобы записывать (как новый файл) X
Войти в режим шифрования (или ed -х
имя_файла) $=
Печатать номер строки ! cmdline
Выполнить команду UNIX cmdline
(.+1) newline
Печатать строку
Таблица П.1.2: Сводка команд
ed
n
Абсолютный номер строки n, n = 0,1, 2,... .
Текущая строка $
Последняя строка текста /re/
Следующая строка, соответствующая re
; после последней $
циклическое движение к первой строке ?re?
Предыдущая строка, соответствующая re; после первой циклическое движение к последней $ 'c
Строка с меткой с
N1+/-n
Строка N1+/-n (аддитивная комбинация) N1,N2
Строки с N1 по N2 N1;N2
Команда: сделать строку N1 текущей, затем вычислить N2. N1 и N2 могут быть определены любым из перечисленных выше способов
Таблица П.1.3: Номера строк в
ed
УпражнениеЕсли вы думаете, что знаете
ed
, попробуйте выполнить текст (см. справочное руководство по quiz(6)
).Приложение 2Справочное руководство по hoc
Hoc — диалоговый язык для арифметики с плавающей точкой
РЕЗЮМЕHoc — это простой программируемый интерпретатор для выражений с плавающей точкой. Он обеспечивает поток управления в стиле Си, определения функций и обычные числовые встроенные функции, такие, как косинус и логарифм.
ВыраженияHoc представляет язык выражений, во многом подобный Си: хотя он и содержит несколько управляющих операторов, большинство операторов, например присваивания, суть выражения, значения которых не принимаются во внимание. Так, оператор присваивания
=
присваивает значение своей правой части левому операнду и вырабатывает значение, используемое в многократном присваивании. Грамматика выражений имеет вид:выражение : число
| переменная
| (выражение)
| выражение бинарная_операция выражение
| унарная_операция выражение
| функция(аргументы)
Числа представляются с плавающей точкой. Формат ввода распознается с помощью
scanf(3)
: цифры, десятичная точка, цифры, е
или E
, показатель степени со знаком. Должна присутствовать по крайней мере одна цифра или десятичная точка; другие компоненты являются необязательными.Имена переменных формируются из букв, за которыми следуют строки букв и цифр. Здесь бинарная_операция означает двуместные операции, такие, как сложение или логическое сравнение, а унарная_операция — две операции отрицания: '
!
' (логическое отрицание НЕ) и (арифметическое отрицание, перемена знака). Все операции перечислены в табл. П.2.1.^