седь найти и вставить после или заменить

Я хотел бы добавить слово в файл, как это делается в скрипте bash;

Я хочу, чтобы строка в /etc/nsswitch.conf шла из;

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

до;

hosts: files wins dns mdns4_minimal [NOTFOUND=return] dns myhostname

Я пытался с sed, но не повезло. Я не могу понять, как найти слово и вставить или заменить в этом файле?

1
задан 13 September 2019 в 11:45

1 ответ

Получите части, которые Вы не хотите изменять.

sed 's/^\(hosts:  *files\) \(mdns4_minimal\)/\1 wins dns \2/' input.file
  • \(...\) создает группу получения, в то время как \1 ссылки первая группа получения, \2 вторая, и т.д.
  • ^ соответствия в начале строки.
  • * означает "предыдущую вещь повторенный нуль или больше раз". Я был слишком ленив для подсчета пробелов.
  • добавляют опцию -i, если Вы хотите внести изменения вместо файла, для создания также резервной копии исходного файла добавляют -i.bak или -i.default.
2
ответ дан 10 November 2019 в 10:03

Другие вопросы по тегам:

Похожие вопросы: