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

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

Жанры

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

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

Гиппопотам

Фрай Стивен
Проза:
современная проза
7.94
рейтинг книги
Гиппопотам

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.25
рейтинг книги
Кодекс Крови. Книга ХVI

Брак по-драконьи

Ардова Алиса
Фантастика:
фэнтези
8.60
рейтинг книги
Брак по-драконьи

Интриганка

Шелдон Сидни
Приключения:
исторические приключения
9.24
рейтинг книги
Интриганка

Чужой ребенок

Зайцева Мария
1. Чужие люди
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Чужой ребенок

Недорогая еда

Барановский Виктор Александрович
Дом и Семья:
кулинария
6.25
рейтинг книги
Недорогая еда

Геном хищника. Книга третья

Гарцевич Евгений Александрович
3. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга третья

Третий Генерал: Том VII

Зот Бакалавр
6. Третий Генерал
Фантастика:
городское фэнтези
аниме
сказочная фантастика
попаданцы
5.00
рейтинг книги
Третий Генерал: Том VII

Газлайтер. Том 14

Володин Григорий Григорьевич
14. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
4.75
рейтинг книги
Газлайтер. Том 14

Осколки чести

Буджолд Лоис Макмастер
1. Сага о Форкосиганах
Фантастика:
космическая фантастика
9.34
рейтинг книги
Осколки чести

Егерь. Вызов

Скиба Николай
3. Зверолов
Фантастика:
боевая фантастика
рпг
уся
фэнтези
попаданцы
6.00
рейтинг книги
Егерь. Вызов

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5