On 02. juni 2017 17:55, Anfield wrote:
How do I do an anywhere match for a string and replace with some text?
The below playbook doesnt work. But just looking for example to search for
part of green - reen and replace this with jabba.
How do I do that? Thanks
I suggest reading about regexp here
https://docs.python.org/2/library/re.html
and then
https://docs.ansible.com/ansible/lineinfile_module.html
List
red
blahstuffcans
buns
buns
grey
green
brown
red
grey
grey
Playbook -
---
- hosts: local
tasks:
- name: Line In File
lineinfile:
dest: /home/ansible/test.txt
regexp: '%reen%'
line: '%jabba%'
register: foundstuff
- debug: var=foundstuff
% is not a valid regexp special character so you literally searching for
a line containing %reen% and replace that line with %jabba%.
But since %reen% is not in file it will add %jabba% to the bottom.
To make it work you need to do this
- name: Line In File
lineinfile:
dest: /home/ansible/test.txt
backrefs: yes
regexp: '(.*)reen(.*)'
line: '\1jabba\2'
--
Kai Stian Olstad
--
You received this message because you are subscribed to the Google Groups "Ansible
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/4cec57d9-2a38-0a88-6681-92c2e8e60237%40olstad.com.
For more options, visit https://groups.google.com/d/optout.