🖥 sed — потоковый редактор текста в Linux
🤓 Появился в 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.
#линуксятина
🤓 Появился в 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.
#линуксятина