SED – поиск и замена специальными символами (#,,%)

Я знаю, что это очень простой вопрос, но я изо всех сил пытаюсь найти решение этого.

Мне нужно автоматически найти и заменить в /etc/aliases следующий раздел:

 # Person who should get root's mail #root: marc 

И это должно выглядеть примерно так:

 # Person who should get root's mail root: someone@something.tld 

И я не смог найти решение. Можете ли вы, ребята, вскочить с некоторыми предложениями? Не нужно sed .

One Solution collect form web for “SED – поиск и замена специальными символами (#,,%)”

В системе GNU вы можете использовать это:

 sed -i '/^#[[:blank:]]Person/{n;s/#root:[[:blank:]]\+marc/root:\tsomeone@something.tld/;}' file 

Он ищет строку, начинающуюся с # Person . Затем переключается на следующую строку и заменяет #root:<blanks>marc с root:<tab> ... Флаг -i редактирует файл на месте.

-i , \+ и \t – расширения GNU. Стандартным эквивалентом \+ является словомер \{1,\} . Чтобы отредактировать файл на месте портативно, вам необходимо обратиться к временному файлу. Стандартным эквивалентом \t является вставка символа табуляции буквально.

  • Помощь с sed - удаление определенных строк с определенной строкой
  • Согласование и вставка в линию
  • обновить переменную PATH в .bashrc, используя sed
  • Чтобы удалить лишнее пространство из строки с помощью команды оболочки
  • Многострочный grep был связан с двумя тегами, отображать только последнее совпадение
  • Удалить строку, содержащую определенную строку, и следующую строку
  • Печать строк с нечетными номерами, печать строк с четными номерами
  • Печать строк между двумя шаблонами с SED
  • Как заменить это регулярное выражение на пустое, используя sed
  • Получить текущий часовой пояс на Centos 7
  • Regex: нужна помощь с использованием awk и sed для соответствия веб-сайтам по IP-адресу
  • Linux и Unix - лучшая ОС в мире.