Чтение онлайн

ЖАНРЫ

UNIX — универсальная среда программирования
Шрифт:

По умолчанию диапазон для

w
и
W
(команда
W
приведена ниже в табл. П.1.2) — это целый файл. Значение n по умолчанию для
r
равно
$,
что представляется не очень удачным. Будьте внимательны.

Редактор

ed
запоминает первое использованное имя файла из командной строки или из команд
r
,
w
. Команда
f
(файл) печатает или заменяет имя запомненного файла:

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.

^
Возведение в степень (FORTRAN
**
), правоассоциативна
!
Одноместные логическое и арифметическое отрицания
* /
Умножение, деление
+ -
Сложение, вычитание
> >=
Операции отношения: больше, больше или равно
< <=
Меньше, меньше или равно
== !=
Равно, не равно (все отношения одинакового приоритета)
&&
Логическое И (оба операнда всегда вычисляются)
||
Логическое ИЛИ (оба операнда всегда вычисляются)
=
Присваивание, правоассоциативна

Таблица П.2.1. Операции по порядку уменьшения приоритета

Функции, как описывается ниже, могут быть определены пользователем. Аргументы функций — это выражения, разделяемые запятыми. В табл. П.2.2 перечислено несколько встроенных функций, имеющих по одному аргументу.

abs(x)
Абсолютная величина x
atan(x)
Арктангенс x
cos(x)
Косинус x
exp(х)
Экспонента x
int(x)
Целая часть x, усеченная в сторону нуля
log(x)
Натуральный логарифм x
log10(x)
Десятичный логарифм x
sin(x)
Синус x
sqrt(x)
Корень квадратный из x

Таблица П.2.2. Встроенные функции

Логические выражения имеют значения 1 (истина) и 0 (ложь). Как и в Си, любое ненулевое значение означает истину. При всех операциях над числами с плавающей точкой сравнения на равенство могут быть неточными. Кроме того,

hoc
имеет несколько встроенных констант, приведенных в табл. П.2.3.

DEG 57.2957795130823208768 180/, градусы на радианы
E
2.71828182845904523536 е, основание натуральных логарифмов
GAMMA
0.57721566490153286060 , константа Эйлера-Масчерони
PHI
1.61803398874989484820 (5+1)/2, золотое сечение
PI
3.14159265358979323846 , круговое трансцендентное число
Поделиться с друзьями: