Господа! Кто понимает, и сможет уразуметь меня... Не всасываю совсем.
Есть модуль replace, который использует re в качестве движка. В документации приводится пример:
replace: dest=/etc/hosts regexp='(\s+)oldhostname(\s+.*)?$' replace='\1newhostname\2'
Но мне надо поменять вот такое:
root@dummy:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 oldhostname.company.ru oldhostname
192.168.1.1 oldhostname.company.ru oldhostname
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@dummy:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 newhostname.company.ru newhostname
192.168.1.1 newhostname.company.ru newhostname
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
КОРОЧЕ: заменить все вхождения (жадный поиск?), слова: oldhostname на слово: newhostname
Как? У меня сложилось ОЧЕНЬ стойкое впечатление, что движок re, не позволяет использовать выражение для всех вхождений, а останавливается на первом совпадении...
Подскажите пожалуйста, господа питонисты!