v1.0

$ sed

Текст и потокисложность: среднийпакет: sed⚠ требует осторожности

Потоковый текстовый редактор: замена по шаблону. Она может обрабатывать файл или данные, полученные от другой команды через конвейер. Например, sed -i "s/old.local/new.local/g" app.conf — заменить домен в конфиге по всему файлу.

Синтаксис

sed [ОПЦИИ] ВЫРАЖЕНИЕ [ФАЙЛ]

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

s/A/B/gзаменить A на B во всей строке (подстановки)
-iправить файл на месте (в macOS требует -i "")
-nне печатать строки без явной команды
-e ВЫРнесколько выражений подряд
NUM,NUMpнапечатать диапазон строк

Примеры из практики

$ sed -i "s/old.local/new.local/g" app.conf
После запуска · пошаговоЧто произойдёт:
заменить домен в конфиге по всему файлу.

Что появится в терминале:
⚠ Команда изменяет состояние системы. Перед запуском проверьте пути, аргументы и резервную копию.

Как понять, что всё получилось:
Перепроверьте изменённый объект отдельной командой и затем выполните «echo $?»: значение 0 означает, что утилита завершилась без зарегистрированной ошибки.

Важно:
Не копируйте пример вслепую: замените учебные пути своими и убедитесь, что у вас есть резервная копия.
заменить домен в конфиге по всему файлу
$ sed -n "10,20p" big.log
После запуска · пошаговоЧто произойдёт:
показать только строки 10–20.

Что появится в терминале:
⚠ Команда изменяет состояние системы. Перед запуском проверьте пути, аргументы и резервную копию.

Как понять, что всё получилось:
Перепроверьте изменённый объект отдельной командой и затем выполните «echo $?»: значение 0 означает, что утилита завершилась без зарегистрированной ошибки.

Важно:
Не копируйте пример вслепую: замените учебные пути своими и убедитесь, что у вас есть резервная копия.
показать только строки 10–20
$ cut -d: -f1 /etc/passwd | sed "s/^/user: /"
После запуска · пошаговоЧто произойдёт:
префикс к каждой строке в пайпе.

Что появится в терминале:
⚠ Команда изменяет состояние системы. Перед запуском проверьте пути, аргументы и резервную копию.

Как понять, что всё получилось:
Перепроверьте изменённый объект отдельной командой и затем выполните «echo $?»: значение 0 означает, что утилита завершилась без зарегистрированной ошибки.

Важно:
Не копируйте пример вслепую: замените учебные пути своими и убедитесь, что у вас есть резервная копия.
префикс к каждой строке в пайпе
Осторожно. Команда изменяет системные настройки или влияет на безопасность. Меняйте только то, что понимаете, и держите резервную копию файла.
Совет практика. Перед sed -i сделайте копию файла: cp app.conf app.conf.bak. Откат дешевле отладки.

Поддержка дистрибутивов

Связанные команды