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 является вставка символа табуляции буквально.

  • Создание и экспорт / импорт переменной с awk?
  • Как объединить все CSV S в один CSV в порядке
  • OpenWRT отсутствует OD (восьмеричная свалка)
  • Сравнение 3 строк и 2 строк в BASH
  • Как удалить пробелы в столбцах?
  • Как удалить строку символов после и до определенного символа?
  • Захват значений в двойных скобках
  • Как найти одно слово и последовательно заменить его?
  • Как эффективно выражать переменные для SED?
  • переименуйте пакет файлов после чтения из исходного файла
  • Работает ли ] для sed шаблонов на всех дистрибутивах Linux?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.