brilliant. thank you very much. finally seem to be making sense of regular expressions some what but still have a long way to go
Thanks again. On Thursday, 13 December 2018 17:24:29 UTC, Dick Visser wrote: > > On Thu, 13 Dec 2018 at 17:42, danish09 <[email protected] > <javascript:>> 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 <[email protected]> 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 [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/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 [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > 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 [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/eb74b12a-ae7d-44b9-83e2-694ea6764051%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
