Обзор
ed — это мощный, но лаконичный редактор, специализирующийся на редактировании текстовых файлов построчно. Помимо интерактивного режима, он может использоваться в неинтерактивном режиме в скриптах, что делает его подходящим для автоматизированной обработки текста.
Основные характеристики
- Строково-ориентированное редактирование: работа построчно
- Дружелюбен к скриптам: подходит для неинтерактивного использования
- Очень легкий: использует минимальные ресурсы
- Стандарт POSIX: предустановлен в большинстве систем Unix/Linux
Основные опции
ed имеет немного опций командной строки, большинство функций выполняется внутренними командами редактора.
Управление поведением
Сгенерированная команда:
Комбинируйте команды.
Описание:
`ed` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
ed можно использовать интерактивно или через перенаправление ввода в скриптах.
Создание нового файла и добавление текста
ed newfile.txt
a
Hello, ed!
This is a test line.
.
w
q
Открывает новый файл, добавляет текст, затем сохраняет и выходит.
Открытие существующего файла и просмотр содержимого
ed existing_file.txt
1,$p
q
Открывает существующий файл, выводит все строки, затем выходит.
Замена определенного текста (неинтерактивно)
echo '1,$s/old_text/new_text/g
w
q' | ed -s my_document.txt
Заменяет весь 'old_text' на 'new_text' в файле и сохраняет. Опция -s подавляет вывод.
Добавление содержимого в конец файла (неинтерактивно)
echo '$a
New line added at the end.
.
w
q' | ed -s my_document.txt
Добавляет новую строку в конец файла и сохраняет.
Советы и предостережения
ed имеет совершенно иной способ использования, чем другие современные редакторы, поэтому важно понимать несколько ключевых концепций.
Ключевые концепции использования ed
- **Режим команд и режим ввода**: ed по умолчанию находится в режиме команд, и вы переходите в режим ввода с помощью команд `a` (append), `i` (insert), `c` (change). В режиме ввода ввод `.` (точки) в отдельной строке возвращает вас в режим команд.
- **Указание адресов**: Команды могут применяться к определенным строкам (например, `1` — первая строка, `$` — последняя строка, `.` — текущая строка) или диапазонам строк (например, `1,$` — весь файл).
- **Сохранение и выход**: Команда `w` сохраняет изменения, а команда `q` завершает работу редактора. Комбинации типа `wq` не поддерживаются. `Q` принудительно завершает работу без сохранения изменений.
- **Проверка текущей строки**: Ввод команды `.` выводит содержимое текущей строки, а команда `=` выводит номер текущей строки.
- **Использование регулярных выражений**: Вместе с командой `s` (substitute) вы можете использовать мощные регулярные выражения для поиска и замены текста.