UNIX — универсальная среда программирования
Шрифт:
w poem
Пишем строки в файл poem 121
ed сообщает, что записан 121 символ q
Выход Команда
а
добавляет или присоединяет строки. Режим добавления заканчивается строкой, состоящей из одной точки. Из-за отсутствия индикации режима, в котором вы работаете, возможны две распространенные ошибки: ввод текста без команды а
и ввод команды до ввода '.
'. Редактор
ed
никогда не будет писать ваш текст в файл автоматически; вы должны задать это с помощью команды w
. Однако,
ed
выдает '?
' как предупреждение. Есть другая команда q
, позволяющая завершить работу независимо от внесения исправлений.
$ ed poem
121
Файл существует и имеет 121 символ а
Добавить еще строки в его конец
And the great fleas themselfs, in turn,
have greater fleas to go on;
While these again have greater still,
and greater still, and so on.
.
Печатаем '.' для завершения q
Пытаемся выйти ?
Предупреждение: не было записи w
Нет имени файла; подразумевается poem
263
q
Теперь можно выходить $ wc poem
Проверьте для уверенности
8 46 263 poem
$
Временная передача управления
shell
с помощью '!
'Если вы запустили
ed
, то можете временно выйти из него, чтобы запустить другую команду shell
. В этом случае нет необходимости прекращать работу достаточно ввести команду ed
'!
'.
$ ed poem
! wc poem
Запуск wc без выхода из ed
8 46 263 poem
!
Вернулись из команды q
Выход без w годится: не было исправлений
$
Печать
Строки файла нумеруются как 1, 2 … Вы можете печатать
n
– ю строку, дав команду np
или просто номер n
, и строки с m
по n
, используя m,np
. "Номером строки" $
обозначается последняя строка, так что строки можно не считать. 1 | Печатать первую строку; 1р то же самое |
$ | Печатать последнюю строку; $p то же самое |
1,$p | Печатать строки с первой по последнюю |
Печатать файл по одной строке проще всего; нажимая клавишу
RETURN
, вы можете вернуться на одну строку назад с помощью '–
'. Можно комбинировать номера строк с '+
' и '–
'. $-2,$p | Печатать
|
1,2+3p | Печатать строки с первой по пятую |
Однако нельзя печатать после конца файла или в обратном порядке; команды типа
$,$+1p
и $,1p
считаются незаконными. Команда
list 1
выводит текст в формате с видимыми символами. Это удобно при поиске в файлах управляющих символов, при различении пробелов, табуляции и т.п. (см. vis
в гл. 7). Образцы
Как только размер начинает превышать две строки, становится неудобным печатать его весь целиком, чтобы отыскать нужную строку. Редактор
ed
предлагает способ поиска строк, совпадающих с некоторым образцом, шаблоном: /pattern/
обнаруживает очередное вхождение pattern
.
$ ed poem 263
/flea/
Ищет очередную строку, содержащую flea
Great fleas have little fleas
/flea/
Ищет еще одну
And little fleas have lesser fleas,
//
Ищет следующую по тому же образцу
And the great fleas themselves, in turn,
??
Поиск в обратном направлении по тому же образцу
And little fleas have lesser fleas,
Редактор запоминает образец, применявшийся вами в последний раз, так что можно повторить поиск просто с помощью
//
. Для поиска в обратном направлении воспользуйтесь ?pattern?
и ??
. Поиск с помощью
/.../
и ?...?
циклический, т.е. продолжается в обратном направлении после достижения одного из концов текста: $p
Печатать последнюю строку ('p' необязательна)
and greater still, and so on.
/flea/
Следующее flea вблизи начала
Great fleas have little fleas
??
От начала идет в обратном направлении
have greater fleas to go on;
Результатом поиска по образцу типа
/flea/
является номер строки, например 1 или $
, который может использоваться в том же контексте, что и такие номера: 1,/flea/p | Печатать от единицы до следующего flea |
?flea?+1,$p | Печатать от предыдущего flea + 1 до конца |
Текущая редактируемая строка. Редактор
ed
отслеживает последнюю строку, с которой имели дело: печатали или вводили текст, читали из файла. Это текущая строка с именем '.
'. Каждая команда определенным образом влияет на текущую строку, обычно настраивая ее на ту, с которой она последний раз работала. Вы можете использовать текущую строку так же, как $
или номер строки типа 1:
Поделиться:
Популярные книги
Стеллар. Трибут
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Его огонь горит для меня. Том 2
2. Мир Карастели
Фантастика:
юмористическая фантастика
5.40
рейтинг книги
На границе империй. Том 9. Часть 4
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Наследник
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги

Совершенно несекретно
15. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ваше Сиятельство 2
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Прометей: каменный век II
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Единственная для темного эльфа 3
3. Мир Верея. Драконья невеста
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Жандарм
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
4.11
рейтинг книги
Долгий путь домой
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Прогрессор поневоле
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Наследие Маозари 6
6. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Я еще не барон
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Лолита
Проза:
классическая проза
современная проза
8.05