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

на главную - закладки

Жанры

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

По умолчанию принимается диапазон

.,.+1
;

Строки можно расщепить командой подстановки, отделив новую строку:

s/part1part2/part1\part2/
Расщепить строку на две части
s/ /\ /g
Расщепить по каждому пробелу. Оставить одно слово на строку

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

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

\(...\)
появляется в регулярном выражении, то часть соответствующего ей фрагмента доступна как
\1
. Возможно до девяти помеченных выражений, на которые ссылаются с помощью
\1
,
\2
и т.д.

s/\(...\)\(.*\)/\2\1/
Поместить 3 первых символа в конец
/\(..*\)\1/
Найти
строки, содержащие повторяющиеся смежные цепочки символов
Команды, работающие с файлами

Командам

r
и
w
(читать и писать) могут предшествовать номера строк:

nr file
Читать
file
; добавить его после строки n; текущей становится последняя прочитанная строка
m,nw file
Писать строки m-n в
file
; положение текущей строки не изменяется
m,nw file
Добавить строки m-n к
file
; положение текущей строки не изменяется

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

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
, показатель степени со знаком. Должна присутствовать по крайней мере одна цифра или десятичная точка; другие компоненты являются необязательными.

Поделиться:
Популярные книги

Сын Тишайшего

Яманов Александр
1. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.20
рейтинг книги
Сын Тишайшего

"Искажающие реальность" Компиляция. Книги 1-14

Атаманов Михаил Александрович
Искажающие реальность
Фантастика:
боевая фантастика
космическая фантастика
киберпанк
рпг
5.00
рейтинг книги
Искажающие реальность Компиляция. Книги 1-14

Школа. Первый пояс

Игнатов Михаил Павлович
2. Путь
Фантастика:
фэнтези
7.67
рейтинг книги
Школа. Первый пояс

Невеста на откуп

Белецкая Наталья
2. Невеста на откуп
Фантастика:
фэнтези
5.83
рейтинг книги
Невеста на откуп

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Аргумент барона Бронина 4

Ковальчук Олег Валентинович
4. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 4

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Измена. Право на обман

Арская Арина
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на обман

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Жаба с кошельком

Донцова Дарья
19. Любительница частного сыска Даша Васильева
Детективы:
иронические детективы
8.26
рейтинг книги
Жаба с кошельком

Бастард Императора. Том 11

Орлов Андрей Юрьевич
11. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 11

Академия чаросвет. Тень

Ярошинская Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Академия чаросвет. Тень

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4