Нужно массово заменить строку во всех файлах проекта? sed -i — замена прямо в файлах, без открытия редактора, без скриптов.
🔹 Зачем это нужно
— Массовый рефакторинг: переименовать endpoint, обновить URL, сменить конфиг.
— Работает с пайпами и можно комбинировать с find и grep.
— Поддерживает регулярки, а не просто текстовая замена.
🔹 Как использовать
— Замена в файле:
sed -i 's/old-api/new-api/g' config.yaml— Во всех файлах рекурсивно:
find . -name "*.yaml" -exec sed -i 's/old-api/new-api/g' {} +— Удалить строки с паттерном:
sed -i '/DEBUG/d' app.log— Вставить строку после совпадения:
sed -i '/server {/a\ listen 443 ssl;' nginx.conf— На macOS:
sed -i '' 's/old/new/g' file.txt (пустой суффикс бэкапа)💡 Перед массовым
sed -i всегда делайте dry run: grep -r "old-api" --include="*.yaml" — убедитесь, что замена затронет только нужные файлы. И коммитьте перед заменой, git diff покажет, если что-то пошло не так.🐸 Библиотека пхпшника