Я хотел бы добавить слово в файл, как это делается в скрипте bash;
Я хочу, чтобы строка в /etc/nsswitch.conf
шла из;
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
до;
hosts: files wins dns mdns4_minimal [NOTFOUND=return] dns myhostname
Я пытался с sed
, но не повезло. Я не могу понять, как найти слово и вставить или заменить в этом файле?
Получите части, которые Вы не хотите изменять.
sed 's/^\(hosts: *files\) \(mdns4_minimal\)/\1 wins dns \2/' input.file
\(...\)
создает группу получения, в то время как \1
ссылки первая группа получения, \2
вторая, и т.д. ^
соответствия в начале строки. *
означает "предыдущую вещь повторенный нуль или больше раз". Я был слишком ленив для подсчета пробелов. -i
, если Вы хотите внести изменения вместо файла, для создания также резервной копии исходного файла добавляют -i.bak
или -i.default
.