Обзор
ex — это командный режим редактора Vi, работающий построчно. Он очень полезен для обработки содержимого файла построчно или для выполнения сложных текстовых преобразований с использованием регулярных выражений. В частности, он является мощным инструментом для автоматического изменения файлов в скриптах оболочки.
Основные возможности
- Построчное редактирование текста
- Оптимизирован для скриптов и автоматизированных задач
- Мощная поддержка регулярных выражений
- Использует тот же набор команд, что и Vi/Vim
- Поддержка неинтерактивного режима
Основные опции
ex в основном выполняет команды непосредственно в файле, но предоставляет несколько опций командной строки для управления определенным поведением при запуске.
Опции запуска и режима
Сгенерированная команда:
Комбинируйте команды.
Описание:
`ex` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
ex в основном используется для выполнения определенных задач в скриптах или для переключения в режим `:ex` внутри редактора vi.
Открытие файла и вывод содержимого
ex -s file.txt <<EOF
%p
q!
EOF
Открывает файл в режиме ex, выводит все строки и затем завершает работу.
Замена и сохранение строки в файле
ex -s -c '%s/old_string/new_string/g | wq' file.txt
Заменяет все вхождения 'old_string' на 'new_string' в файле file.txt, затем сохраняет и завершает работу.
Пакетная замена строк в нескольких файлах
for f in *.txt; do ex -s -c '%s/error/warning/g | wq' "$f"; done
Заменяет 'error' на 'warning' во всех файлах .txt в текущем каталоге.
Удаление определенной строки
ex -s -c '5d | wq' file.txt
Удаляет 5-ю строку из файла file.txt и сохраняет изменения.
Советы и рекомендации
ex больше подходит для скриптов и автоматизированных задач, чем для интерактивного использования, и знание нескольких советов может быть полезно для эффективной обработки текста.
Основные советы
- В неинтерактивных скриптах всегда используйте опцию `-s` (silent), чтобы подавить ненужные сообщения.
- Команды идентичны командам режима команд `vi`. Вы можете сохранить и выйти с помощью `:wq` или выйти без сохранения с помощью `:q!`.
- Регулярные выражения могут использоваться так же мощно, как и в `sed`. `%s/pattern/replacement/g` используется для замены шаблона во всем файле.
- ex входит в состав пакетов `vi` или `vim`, которые обычно предустановлены в большинстве систем Linux.
- Вы можете объединять несколько команд ex в одной строке, используя конвейер (`|`).