Я хотел бы заменить все экземпляры dogs
на cats
, кроме тех, в которых строка имеет does not play with mice
.
Содержимое моего файла выглядит так:
dogs:plays with mice
dogs:plays with mice
dogs:does not play with mice
dogs:plays with mice
dogs:plays with mice
dogs:does not play with mice
dogs:plays with mice
Ниже приведены важные биты моей книги-игры, чтобы попытаться достичь желаемого результата:
vars:
file_to_update: /tmp/cats_dogs_file.txt
exclude: "does not play with mice"
from_name: "dogs"
to_name: "cats"
tasks:
- name: updates dogs to cats - excluding the necessary
replace:
path: "{{ file_to_update }}"
regexp: "^{{ from_name }}(?! {{ exclude }})"
replace: "{{ to_name }}"
register: file_update_status
Я ожидаю, что содержимое файла будет изменено, как указано ниже:
cats:plays with mice
cats:plays with mice
dogs:does not play with mice
cats:plays with mice
cats:plays with mice
dogs:does not play with mice
cats:plays with mice
Вместо этого я в настоящее время получаю все dogs
, измененные на cats
.
Исключение не соблюдается.