Обзор sed
`sed` считывает входной поток по строкам и обрабатывает их в соответствии с заданными правилами (скриптами), отправляя результат на стандартный вывод. Исходный файл по умолчанию не изменяется, и для сохранения изменений в файл необходимо использовать перенаправление (`>`) или опцию `-i`.
Основные функции sed
`sed` в основном используется для следующих целей:
Основные области применения
- Замена/подстановка текста: Заменяет определенную строку в файле на другую строку. (Наиболее распространенное использование)
- Удаление/добавление строк: Удаляет строки, содержащие определенный шаблон, или вставляет новые строки в определенное место.
- Соответствие шаблону и вывод: Выводит только строки, соответствующие определенному шаблону, или обрабатывает только определенный диапазон строк.
- Изменение формата файла: Преобразует формат текстового файла или реорганизует данные.
- Автоматизация скриптов: Играет ключевую роль в сценариях оболочки для пакетной обработки большого количества текстовых файлов.
Основная структура sed
Основная структура команды `sed` имеет вид `sed [OPTIONS] 'скрипт' [INPUT_FILE...]`. Здесь 'скрипт' имеет форму `[адрес]команда[аргумент]`, и самой важной командой является `s` (substitute, замена).
Основные параметры команды sed
`sed` предлагает различные параметры для управления способом обработки входных данных, указания скриптов, управления выводом и т.д., что обеспечивает гибкое редактирование текста.
1. Параметры обработки скриптов и файлов
2. Флаги команды замены (s)
3. Другие полезные команды
Сгенерированная команда:
Комбинируйте команды.
Описание:
`sed` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Изучите различные примеры использования команды `sed`, чтобы эффективно искать, заменять и удалять содержимое текстовых файлов.
Замена всех 'old' на 'new' в файле
sed 's/old/new/g' example.txt
Заменяет все слова 'old' на 'new' в файле `example.txt` и отображает результат на стандартном выводе.
Прямое редактирование файла с заменой строки
sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf
Непосредственно изменяет 'DEBUG=true' на 'DEBUG=false' в файле `config.conf` и создает резервную копию оригинального файла (`.bak` расширение).
Удаление строки по номеру
sed '5d' log.txt
Удаляет 5-ю строку из файла `log.txt` и отображает результат.
Удаление строк в диапазоне
sed '10,20d' document.txt
Удаляет содержимое с 10-й по 20-ю строки из файла `document.txt` и отображает результат.
Удаление строк с определенным шаблоном
sed '/WARNING/d' errors.log
Удаляет все строки, содержащие слово 'WARNING', из файла `errors.log` и отображает результат.
Вставка строки заголовка в содержимое файла
sed '1i\Name,Age,City' data.csv
Вставляет новую строку заголовка над первой строкой файла `data.csv`.
Удаление пустых строк
sed '/^$/d' text.txt
Удаляет все пустые строки из файла `text.txt`. `^$` означает регулярное выражение для пустых строк.