| Команда | Назначение |
| sed 's/a/b/g' | Замена |
| sed '/pattern/d' | Удаление по шаблону |
| sed -n '/p/p' | Фильтрация |
| sed -i '…' file | Изменение файла |
| sed -E '…' | Расширенные regex |
| Ключ | Описание |
| -n | Не выводить строки по умолчанию (только через p) |
| -e | Добавить команду sed (можно несколько) |
| -f | Читать команды из файла |
| -i | Редактировать файл "на месте" |
| -r / -E | Использовать расширенные регулярные выражения |
| -l | Ограничение длины строки вывода |
| -z | Разделитель NULL вместо \\n |
| –debug | Режим отладки (GNU sed) |
| Команда | Пример | Описание |
| s | sed 's/a/b/' | Замена первого совпадения |
| s (g) | sed 's/a/b/g' | Замена всех совпадений |
| d | sed 'd' | Удалить строки |
| d (адрес) | sed '5d' | Удалить строку №5 |
| d (шаблон) | sed '/error/d' | Удалить строки по шаблону |
| p | sed -n 'p' | Печать строк |
| p (адрес) | sed -n '5p' | Печать строки №5 |
| p (шаблон) | sed -n '/error/p' | Печать по шаблону |
| i | sed '1i TEXT' | Вставить перед строкой |
| a | sed '1a TEXT' | Добавить после строки |
| c | sed '1c TEXT' | Заменить строку целиком |
| Синтаксис | Пример | Описание |
| N | sed '5d' | Конкретная строка |
| N,M | sed '1,5d' | Диапазон строк |
| /pattern/ | sed '/error/d' | По шаблону |
| /start/,/end/ | sed '/a/,/b/d' | Диапазон по шаблонам |
| Флаг | Пример | Описание |
| g | s/a/b/g | Все совпадения |
| i | s/a/b/i | Без учёта регистра |
| p | s/a/b/p | Печатать изменённые строки |
| w file | s/a/b/w out.txt | Записать результат в файл |
| Задача | Команда | |
| Замена текста | sed -i 's/localhost/127.0.0.1/g' file.txt | |
| Удалить пустые строки | sed '/ | $/d' file.txt |
| Удалить комментарии | sed '/ | #/d' file.txt |
| Оставить только совпадения | sed -n '/ERROR/p' log.txt | |
| Замена по regex | sed -E 's/[0-9]+/NUMBER/g' | |
| Ситуация | Пример | Комментарий |
| Безопасный inplace | sed -i.bak 's/a/b/' file | Создаёт backup |
| Альтернативный разделитель | sed 's|/var/log|/tmp/log|g' | Удобно для путей |
| Работа с пробелами | sed 's/ /_/g' | Замена пробелов |
cat from.txt | sed -r "s/(.*)from.([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)(.*)/\2/"
sed '/^$/d' test.txt
sed -e '/^-/!d' -e '/^[[:space:]]*$/d' 1.txt > 2.txt
sed '/^\s*$/d;/^\s*#/d' file
sed -E '/^[[:space:]]*$/d;/^[[:space:]]*#/d' file
sed -E '/^[[:space:]]*($|#)/d' file