Главная > Обработка текста и поиск > sed

sed: Редактор потоков текста

sed (stream editor) — это мощная утилита Unix для редактирования потоков текста. Она выполняет преобразования, фильтрацию, удаление, вставку и другие операции с текстом, используя регулярные выражения для обработки входных данных, поступающих из файлов или через конвейеры. Оптимизирован для неинтерактивного редактирования, широко используется для автоматизированной обработки текста в скриптах.

Обзор

sed читает входной поток (файл или стандартный ввод) построчно, применяет указанный скрипт (команды), а затем выводит результат в стандартный вывод. В основном используется для изменения содержимого текстовых файлов, поиска и замены определенных шаблонов, удаления строк и т. д.

Основные функции

  • Мощное сопоставление с образцом с использованием регулярных выражений
  • Замена текста (substitution)
  • Удаление строк (deletion)
  • Вставка и добавление строк (insertion/appending)
  • Прямое изменение содержимого файла (опция -i)

Основные опции

Основные опции команды sed управляют способом указания скрипта или поведением вывода.

Управление скриптами и поведением

Сгенерированная команда:

Комбинируйте команды.

Описание:

`sed` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Изучите методы обработки текста с помощью различных примеров использования sed.

Замена определенной строки

sed 's/old_text/new_text/g' filename.txt

Заменяет все вхождения 'old_text' на 'new_text' в файле. Флаг 'g' заменяет все совпадения в одной строке.

Удаление строк, содержащих определенный шаблон

sed '/error/d' logfile.txt

Удаляет все строки, содержащие слово 'error'.

Прямое изменение содержимого файла

sed -i.bak 's/DEBUG=true/DEBUG=false/g' config.txt

Изменяет 'DEBUG=true' на 'DEBUG=false' в исходном файле 'config.txt' и создает резервную копию с расширением '.bak'.

Вывод первых 5 строк

sed -n '1,5p' data.txt

Выводит первые 5 строк файла. Используется опция '-n' и команда '1,5p'.

Удаление пустых строк

sed '/^$/d' document.txt

Удаляет полностью пустые строки из файла.

Советы и предостережения

Советы по эффективному использованию sed и моменты, на которые следует обратить внимание.

Недопонимание опции sed -d

Относительно предоставленной подсказки 'sed-d', `-d` не является допустимой опцией командной строки для `sed`. Команда `sed` использует такие опции, как `-e`, `-f`, `-i`, `-n` и другие. Если вы выполните `sed -d`, `sed` интерпретирует `-d` как имя файла или выдаст ошибку неизвестной опции.

Правильное использование команды d

`d` — это команда, используемая в скрипте `sed` для удаления определенных строк. Например, `sed '/pattern/d' filename` удаляет все строки, содержащие 'pattern'. Это совершенно отличается от опции командной строки `-d`.

Пример использования команды d

sed '/строка_для_удаления/d' input.txt > output.txt

Удаляет строки из файла, содержащие 'строка_для_удаления'.

Использование регулярных выражений

Сила sed заключается в регулярных выражениях. Освоение различных метасимволов (например, `^`, `$`, `*`, `+`, `?`, `.` и т. д.) позволяет выполнять сложное сопоставление с образцом и замену.

  • `^`: начало строки
  • `$`: конец строки
  • `.`: любой одиночный символ
  • `*`: предыдущий символ повторяется 0 или более раз
  • `s/old/new/g`: заменить все 'old' на 'new'
  • `/pattern/d`: удалить строки с 'pattern'

Привыкайте создавать резервные копии

При прямом изменении файлов с помощью опции `-i` рекомендуется всегда указывать суффикс для резервной копии, чтобы избежать потери исходного файла (например, `sed -i.bak ...`).



Те же команды в категории