$ 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 означает, что утилита завершилась без зарегистрированной ошибки. Важно: Не копируйте пример вслепую: замените учебные пути своими и убедитесь, что у вас есть резервная копия.
$ cut -d: -f1 /etc/passwd | sed "s/^/user: /"После запуска · пошаговоЧто произойдёт: префикс к каждой строке в пайпе. Что появится в терминале: ⚠ Команда изменяет состояние системы. Перед запуском проверьте пути, аргументы и резервную копию. Как понять, что всё получилось: Перепроверьте изменённый объект отдельной командой и затем выполните «echo $?»: значение 0 означает, что утилита завершилась без зарегистрированной ошибки. Важно: Не копируйте пример вслепую: замените учебные пути своими и убедитесь, что у вас есть резервная копия.
Осторожно. Команда изменяет системные настройки или влияет на безопасность. Меняйте только то, что понимаете, и держите резервную копию файла.
Совет практика. Перед sed -i сделайте копию файла: cp app.conf app.conf.bak. Откат дешевле отладки.
Поддержка дистрибутивов
- ✓ Ubuntu
- ✓ Debian
- ✓ Fedora
- ✓ RHEL
- ✓ Arch
- ✓ Alpine
- ✓ openSUSE