On Thu, 13 Dec 2018 at 17:42, danish09 <danishsiddiqu...@gmail.com> wrote:
>
> amazing. thanks a lot. tried it just now and it did the magic. However, tried 
> to give it a little thought. I am assuming 1 is for the expression with in 
> the first bracket (). But since it is an OR '|', how does it know which word 
> needs to be replaced with what and in which line. I mean could it not be 
> possible that the words are replaced as privkey3.pem in the first line and 
> cert3.pem in the second line., the other way round.

No. The pipe (OR) means it can match cert.cruk.org.something or
privkey.cruk.org.something.
Because of the parentheses around it, it can be used later on in the
replacement, this is called backreferencing.
And because it's the first match, it will normally be referenced in
the replacement string by '\1'.
However, because you need a number directly after that, this would
mean '\13` - which is interpreted as the 13th match and will fail.
We therefore have to use a numbered group to reference it, which is the '\g<1>'.
The second pair of parentheses also has an OR, meaning that the
extension can either be 'key.pem', or just 'crt'.
Your example doesn't require using that in the replacement later on,
so there is no '\2' or anything.

Dick


>
> Hope I am clear
>
> Thanks
>
> Danish
> On Thursday, 13 December 2018 11:43:42 UTC, Dick Visser wrote:
>>
>> This should do it:
>>
>>     - name: backup conf file and search and replace regex
>>       replace:
>>         path: /etc/nginx/sites-available/cruk-eb
>>         regexp: '(privkey|cert)\.cruk\.org\.(key\.pem|crt)'
>>         replace: '\g<1>3.pem'
>>         backup: yes
>>
>> Dick
>>
>> On Thu, 13 Dec 2018 at 11:23, danish09 <danishsi...@gmail.com> wrote:
>> >
>> > Hey there,
>> >
>> > I am using ansible 2.6.4. In on the projects I was working on, I had to 
>> > search for 2 different words in the same file and replace them as 
>> > necessary. Used replace module 2 times for this. Below is the playbook 
>> > that I have used.
>> >
>> >     - name: backup conf file and search and replace regex
>> >       replace:
>> >         path: /etc/nginx/sites-available/cruk-eb
>> >         regexp: 'cert\.cruk\.org\.crt'
>> >         replace: 'cert3.pem'
>> >         backup: yes
>> >
>> >     - name: backup conf file and search and replace regex again
>> >       replace:
>> >         path: /etc/nginx/sites-available/cruk-eb
>> >         regexp: 'privkey\.cruk\.org\.key\.pem'
>> >         replace: 'privkey3.pem'
>> >         backup: yes
>> >
>> >
>> > Is there a way that I can search and replace 2 words in one task/play
>> >
>> >
>> > Pleas let me know if there is any other information that you need. And 
>> > apologies if I have missed out anything.
>> >
>> >
>> > Thanks
>> >
>> > Danish.
>> >
>> >
>> >
>> >
>> >
>> > --
>> > 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 ansible-proje...@googlegroups.com.
>> > To post to this group, send email to ansible...@googlegroups.com.
>> > To view this discussion on the web visit 
>> > https://groups.google.com/d/msgid/ansible-project/157209d1-ad23-4f62-ab98-bf5a373227da%40googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Dick Visser
>> Trust & Identity Service Operations Manager
>> GÉANT
>
> --
> 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 ansible-project+unsubscr...@googlegroups.com.
> To post to this group, send email to ansible-project@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/0db22ad8-6dae-4442-b033-d77b7ef7abdb%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
Dick Visser
Trust & Identity Service Operations Manager
GÉANT

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAL8fbwPkPpHSre6v%2B-oWTWSjkZdU0SkNt-DdhSdy2u-Cm3PiUA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to