Я никогда не видел, чтобы sed вел себя так, но я пытаюсь заменить все экземпляры "nameserver" в /etc/resolv.conf моими собственными 3 записями, включая "nameserver". Каждое комбо, которое я пробовал, добавляет мои 3 записи дважды, поэтому у меня есть 6 записей.
sed -i 's/.*nameserver.*/nameserver 10.1.1.1\nnameserver 10.1.1.2\nnameserver 10.1.1.3/g' /etc/resolv.conf
, который выводит
nameserver 10.1.1.1
nameserver 10.1.1.2
nameserver 10.1.1.3
nameserver 10.1.1.1
nameserver 10.1.1.2
nameserver 10.1.1.3
Итак, правильный порядок изаписи, но добавив его дважды. Я также попытался сузить его до сервера имен и ip, но все равно вывести один и тот же вывод дважды.
sed -i "s/^nameserver [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/nameserver 10.1.1.1\nnameserver 10.1.1.2\nnameserver 10.1.1.3/g"
Я действительно запутался и не могу пройти мимоэто. Любая помощь приветствуется.
ETA: текущий resolv.conf
search domain1.net. domain2.net. domaine.com.
nameserver 192.168.1.1
nameserver 192.168.1.2
желаемый вывод
search domain1.net. domain2.net. domaine.com.
nameserver 10.1.1.1
nameserver 10.1.1.2
nameserver 10.1.1.3