Инструменты пользователя

Инструменты сайта


how-to:sed

sed

Формат: sed [ -опции ] 's/regex/replace/флаги' путь_к_файлу

Опции:

  • -r - использование расширенного синтаксиса регулярных выражений
  • -i - выполнение изменений в файле
  • -d - удаление
  • -s - замена
  • -p - вывод на экран
  • -n - подавляет вывод

Флаги:

  • d - удаление строк
  • p - вывод найденных подстрок
  • i - регистронезависимый поиск
  • g - глобальный поиск/замена по всем совпадениям

http://snakeproject.ru/rubric/article.php?art=sed

Примеры

Вывести определённую строку (пример 276-ую):

sed '276!D'

Обрезать строку до символа «/»:

echo Двоичный файл /opt/zimbra/data/postfix/spool/incoming/72AEB2E09C5 | sed -r 's/^[^/]+//'
#/opt/zimbra/data/postfix/spool/incoming/72AEB2E09C5

Обрезать строку после символа пробел:

echo /opt/zimbra/data/postfix/spool/incoming/72AEB2E09C5 совпадает | sed -r 's/(\s+)\S+(.*)/\1/'
#/opt/zimbra/data/postfix/spool/incoming/72AEB2E09C5

Добавить символ # в блоке строк, начинающегося со строки «# IPv6 versions» и заканчивающегося строчкой «# Authorization.»:

sed -i "\|# IPv6 versions|,/#  Authorization./ s/^/#/" /etc/raddb/sites-enabled/default

Добавить в конце и начале кавычки:

sed "s/.*/\"&\"/"

Добавить строку в начале файла:

sed -i -e '1 s/^/string\n/;' file

Добавить 2 строки в конце файла:

sed -i -e '$a line1\nline2' file

Вывести только совпадение:

sed -n '/ssh/p' file

Удалит все строки начиная с искомой:

sed '/^\s\smiddlewares/,$d' file

Изменить во всех txt файлах сопадение:

find . -name '*.txt' -exec sed -i "s/domain.loc/domain.com/g" {} +
how-to/sed.txt · Последнее изменение: 127.0.0.1