🤓 Появился в Bell Labs в 1970-х и до сих пор используется для обработки текста из консоли и shell-скриптов.
sed читает входные данные построчно, применяет заданные команды и выводит результат. Исходный файл не меняется, если не используется -i.✅ Синтаксис
sed [опции] 'адрес команда' файл
адрес определяет строки, к которым применяется команда. Без адреса обрабатываются все строки.
✅ Основные команды:
s — замена;d — удаление;p — печать;a / i — добавление после или перед строкой.Если файл не указан,
sed читает stdin, поэтому его можно использовать в пайпах.✅ Основные опции
-n — выводить только то, что явно запрошено через p-i — правка на месте; -i.bak сохраняет резервную копию-E — расширенные регулярные выражения-e — несколько команд за один вызовАдресом может быть номер строки, диапазон
10,20, последняя строка $ или регулярное выражение /error/.✅ Замена всех вхождений
sed 's/http:/https:/g' config.yaml
— url: http://api.local → url: https://api.localФлаг
g заменяет все совпадения в строке. Без него — только первое. Без -i результат выводится в консоль, а исходный файл остаётся без изменений.Конфиг без пустых строк и полнострочных комментариев:
sed -E '/^\s*(#|$)/d' /etc/nginx/nginx.conf
Команда удаляет пустые строки, строки из пробелов и строки, в которых после отступа начинается комментарий #.
👀
sed подходит для замен по шаблону, фильтрации конфигов и обработки текстового вывода в shell-скриптах и CI-пайплайнах. Для работы с колонками, полями и вычислениями чаще используется awk.#линуксятина
