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.

Reply via email to