Поиск по сайту:
Самокритика — самый сложный вид самообслуживания (В. Жемчужников).

Как использовать ed (Стандартный редактор строк) в Unix / Linux

01.04.2025
Как использовать ed (Стандартный редактор строк)

Ed — один из старейших текстовых редакторов, существующий уже почти четыре десятилетия. Он появился задолго до Vi или Vim, и, судя по его функциям, можно с уверенностью сказать, что Vi был создан на основе ed, поскольку у них много общего.

Прежде чем мы продолжим, позвольте мне пояснить, что этот текстовый редактор сегодня используется редко. Так зачем же о нём узнавать? Дело в том, что Vi часто встречается в минималистичных дистрибутивах Linux, но иногда в таких дистрибутивах, как Alpine Linux или Busybox, где нет Vi, единственным вариантом является ed.

Как упоминалось ранее, ed — это самый старый редактор, который по умолчанию поставляется с каждой системой Unix/Linux. Вы можете выполнить команду «ed», чтобы проверить его наличие (для выхода введите и нажмите «Q«). У него очень простой интерфейс, который может сбить с толку новичков, но как только вы освоитесь, вы сможете легко использовать его для создания, редактирования, отображения и обработки файлов.

В этой статье я сосредоточусь в основном на его использовании, а не на объяснении истории редактирования. Итак, начнём…

 

Подробности статьи

Описаниеed (линейный редактор)
Уровень сложностиУмеренный
Привилегии Root или SudoНЕТ
Совместимость с операционной системойUbuntu, Manjaro, Fedora и т.д.
Предварительные условия
Требуется доступ в ИнтернетНЕТ

 

Использование ed

Если вы пользуетесь Nano, то вам не нужно ничего объяснять, но пользователи Vi или Vim могут быстро освоить использование ed, поскольку в нём также есть режимы, аналогичные Command и Insert, которые идентичны им.

Мы должны порекомендовать использовать префикс для командного режима, чтобы вы могли легко определить текущий режим. Дело в том, что при входе в режим редактирования вы сразу увидите пустой экран без каких-либо меню, опций, сообщений или чего-либо ещё.

Итак, новичкам часто бывает сложно работать с текстовым файлом. Давайте мы покажем, что имею в виду: откройте терминал и выполните команду «ed», и вы увидите следующий результат:

andreyex@linux:-$ ed
l
?
m
?
a
Linux AndreyEx

На изображении выше мы ввели несколько команд и написал текст в неопределённом файле. Теперь их невозможно различить, но добавление префикса в командный режим упростит работу с ed. Для этого используйте эту команду с флагом «-p», чтобы добавить префикс в командный режим «ed».

Не стесняйтесь заменять префикс “” чем-нибудь другим.

$ ed -p ": "

 

Выходной сигнал:

: l
?
: m
?
: a
Linux AndreyEx
.
:

На этот раз в выводе можно найти смысл, поэтому позвольте мне рассказать вам, что мы здесь сделали. Во-первых, всё, что находится после префикса «», является командой (аналогично командам Vi); команды «l» и «m» неверны, поэтому в выводе появляется «?», указывающий на ошибку (наберите и введите «H», чтобы увидеть полное сообщение об ошибке).

Команда «a» используется для перехода в режим вставки, после чего мы вводим текст «Linux AndreyEx» в наш неопределённый файл. Чтобы выйти из режима вставки и вернуться в командный режим, необходимо сначала перейти на новую строку, ввести и нажать «.» (точку).

Надеюсь, вы поняли, как работать с текстовым файлом с помощью ed, особенно если вы немного знакомы с Vi или его производными. Важным моментом в работе с ed является построчное редактирование, которое требует последовательного подхода, а не одновременного изменения всего содержимого. Если вы не поняли, не волнуйтесь, после просмотра различных примеров вы поймёте, что я имею в виду.

Хорошо, теперь я покажу вам, как использовать ed для создания, редактирования, отображения и обработки файлов на разных примерах. Давайте начнём…

1. Вы можете использовать ed для редактирования существующего файла, создания нового или начала работы без указания имени файла; все изменения будут сохраняться в буфере, а для последующего сохранения в текстовом файле потребуется командный режим. Сейчас я покажу вам, как работать без указания имени файла, поскольку, как только вы поймёте принцип, всё остальное будет просто. Для начала просто введите «ed», чтобы открыть редактор без указания файла.
2. Когда вы вводите «ed», по умолчанию вы находитесь в командном режиме (принимаете команды). Чтобы записать содержимое в текстовый файл, введите «a», чтобы перейти в режим вставки (или записи). Запишите содержимое, а когда закончите работу, введите «.» в новой строке, чтобы вернуться в командный режим.

 

3. Каждый раз, когда вам нужно добавить новый контент в текстовый файл, вы должны сначала перейти в режим вставки, добавить контент, а затем вернуться в командный режим (как в Vi). Например, после добавления строк в приведённом выше примере я снова перешёл в режим вставки, добавил новую строку, а затем вернулся в командный режим.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

4. Когда вы закончите работу с текстовым файлом, сохраните его, указав имя файла. Например, чтобы сохранить все внесённые выше изменения в новом файле, вы можете использовать «f <filename>» в командном режиме, а затем использовать команду «w», чтобы записать содержимое буфера в указанный файл.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

Последняя строка с цифрой 81 обозначает количество байт, записанных в текстовый файл.

5. После сохранения изменений в новом файле вы можете выйти из редактора, введя «Q» в командном режиме, а затем просмотреть сохранённый файл в текущем каталоге с помощью «ls» и прочитать его содержимое с помощью «cat».

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

6. Ещё раз: когда вы откроете файл с помощью команды «ed», сначала вы увидите общее количество содержимого в байтах. Чтобы просмотреть всё содержимое файла, введите «,p» в командном режиме.

Если вы просто напечатаете и введёте «p», вы получите последнюю (или самую новую) строку в файле.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

7. Если вы хотите вывести на печать определённую строку в файле, вы можете напрямую ввести «<line-number>» или использовать «<line-number>p» в командном режиме.

Если указанная строка не существует, на выходе вы получите «?».

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

8. Если вы хотите вывести на печать всё содержимое файла вместе с номером строки, вы можете использовать «,n» в командном режиме.
Если вы просто нажмёте и введёте «n», вы получите последнюю (или самую новую) строку в файле с номером строки.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

9. Чтобы вывести определённую строку с номером, вы можете использовать «<line-number>n» в командном режиме.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

10. Если вы хотите вставить новый контент в строку, например, добавить контент в начало (нулевая позиция), используйте «<line-number>a», а чтобы добавить контент во вторую от конца строку, используйте «i» в командном режиме.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

11. Если вы хотите обновить существующую строку, вы можете использовать «<line-number>c» в командном режиме.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

12. Если вы хотите удалить содержимое из файла, вы можете указать диапазон строк следующим образом: «<from>,<to>d» или напрямую указать конкретную строку для удаления следующим образом: «<line-number>d» в командном режиме.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

13. Если вы случайно обновили или удалили содержимое, вы можете ввести «u» в командном режиме, чтобы отменить изменения, и повторить ввод, чтобы внести изменения. Однако помните, что можно отменить только последнее изменение, поэтому будьте осторожны при редактировании файлов с помощью ed.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

14. Чтобы скопировать диапазон строк или отдельную строку и вставить её в определённое место, можно использовать «<from>,<to>t<position>» или «<line-number>t<position>» в командном режиме.

15. Вместо дублирования вы можете переместить строку из одного места в другое, используя метод, очень похожий на предыдущий. Просто замените «t» на «m» в «<from>,<to>m<position>» или «<line-number>m<position>» в командном режиме.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

16. Если ваш файл слишком большой и вы ищете в нём определённый текст, используйте «/<query>» в командном режиме. Однако помните, что для поиска каждого вхождения вам придётся многократно выполнять одну и ту же команду.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

17. Чтобы заменить первое вхождение диапазона текста, конкретного текста или последнего текста, вы можете использовать «<from>,<to>s/search/replace», «<line-number>s/search/replace», «s/search/replace» в командном режиме.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

18. При работе с текстовым файлом в ed вы можете захотеть выполнить команду оболочки. В этот момент вместо того, чтобы выходить из редактора, вы можете использовать «!<command>» для выполнения команды оболочки в редакторе ed.

Как использовать ed (Стандартный редактор строк) в Unix / Linux

19. Чтобы сохранить вывод в существующий файл после выполнения команды оболочки предыдущим способом, вы можете использовать «r !<command>».

Как использовать ed (Стандартный редактор строк) в Unix / Linux

 

20. Здесь мы рассмотрели почти все примеры, но для упрощения вашей практики ниже перечислены все используемые команды с их определениями.

Команда edОпределение
HВключите полный отчет о сообщениях об ошибках.
aРежим вставки.
<line-number>aДобавьте новое содержимое к определенному номеру строки.
iОбновите предпоследнюю строку.
.Выйдите из режима вставки.
f <filename>Сохраните файл с определенным именем файла.
QВыйди из редакции.
,pРаспечатайте все содержимое файла.
<line-number> или <line-number>pВыведите определенную строку из файла.
<from>,<to>pВыведите диапазон строк из файла.
,nВыведите все содержимое файла с указанием номера строки.
<line-number>nВыведите определенную строку из файла с указанием номера строки.
<from>,<to>nВыведите диапазон строк из файла с указанием номера строки.
<line-number>cОбновите содержимое указанной строки.
<from>,<to>cОбновите содержимое между диапазонами строк.
<line-number>dУдалите содержимое указанной строки.
<from>,<to>dУдалите содержимое между диапазонами строк.
<line-number>t<position>Скопируйте конкретное содержимое строки в указанную позицию.
<from>,<to>t<position>Скопируйте диапазон содержимого строки в указанную позицию.
<line-number>m<position>Переместите конкретное содержимое строки в указанную позицию.
<from>,<to>m<position>Переместите диапазон содержимого строки в указанную позицию.
/<query>Выполните поиск по указанному запросу.
s/search/replaceВыполняйте поиск и заменяйте каждый экземпляр текста.
<line-number>s/search/replaceВыполните поиск и замените каждый экземпляр текста в указанной строке.
<from>,<to>s/search/replaceВыполняйте поиск и заменяйте каждый экземпляр текста в пределах диапазона строк

 

Наконец-то мы подошли к концу этой статьи. Что ж, сегодня «ed» используется нечасто, и большинство из вас даже не слышали о нём до сих пор, но это забавный редактор, который вы можете иногда использовать.

Теперь, если у вас есть какие-либо вопросы или пожелания по статье, сообщите нам об этом в комментариях.

Читать  Как перезагрузить Linux с помощью командной строки

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
В 2025 году технологии достигли такого уровня, что проектирование интерьера…

Спасибо!

Теперь редакторы в курсе.