How to split value from list

57 views
Skip to first unread message

Jenisha T

unread,
Jul 6, 2020, 7:44:18 AM7/6/20
to Ansible Project
Hi 
Could you pls help me with the splitting value from the list. I need to extract first value anil before ('':')

 grep_atm.stdout_lines output below

ok: [localhost] => {
    "msg": "anil:x:500:500:Anil:/home/anil:/bin/bash
"
}

I tried,
- set_fact:      
       user_name: "{{ grep_atm.stdout_lines }}"
        register: user_name.split(':')[0]      
 - debug:
        var: user_name.split(':')[0]    

Dick Visser

unread,
Jul 6, 2020, 7:49:35 AM7/6/20
to ansible...@googlegroups.com
Based on your data, look at this module:
https://docs.ansible.com/ansible/latest/modules/getent_module.html
> --
> 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/42fb2917-8336-42a2-979a-44573e91fd77n%40googlegroups.com.



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

T. JENISHA

unread,
Jul 6, 2020, 8:47:28 AM7/6/20
to Ansible Project
It supports only for the database. My output in register
Best Regards
Jenisha T
Whatsapp: +91 07598087866





Dick Visser

unread,
Jul 6, 2020, 9:05:22 AM7/6/20
to ansible...@googlegroups.com
you should either use set_fact, or register. Both doesn't make sense.

On Mon, 6 Jul 2020 at 13:44, Jenisha T <joy...@gmail.com> wrote:
>

Srinivas Naram

unread,
Jul 6, 2020, 9:32:40 AM7/6/20
to ansible...@googlegroups.com
Hello Jenisha,

Assuming that you are getting this value from /etc/passwd., try to change you command

 tail -1 /etc/passwd | awk '{split($0,a,":"); print a[1]}'

Stefan Hornburg (Racke)

unread,
Jul 6, 2020, 10:21:03 AM7/6/20
to ansible...@googlegroups.com
On 7/6/20 3:32 PM, Srinivas Naram wrote:
> Hello Jenisha,
>
> Assuming that you are getting this value from /etc/passwd., try to change you command
>
>  tail -1 /etc/passwd | awk '{split($0,a,":"); print a[1]}'
>

cut -d : -f 1 is more concise and readable than your awk command.

Otherwise I would really like to know why Jenisha resorts to reading the password file.

Regards
racke


> On Mon, Jul 6, 2020 at 6:35 PM Dick Visser <dick....@geant.org <mailto:dick....@geant.org>> wrote:
>
> you should either use set_fact, or register. Both doesn't make sense.
>
> On Mon, 6 Jul 2020 at 13:44, Jenisha T <joy...@gmail.com <mailto:joy...@gmail.com>> wrote:
> >
> > Hi
> > Could you pls help me with the splitting value from the list. I need to extract first value anil before ('':')
> >
> >  grep_atm.stdout_lines output below
> >
> > ok: [localhost] => {
> >     "msg": "anil:x:500:500:Anil:/home/anil:/bin/bash
> > "
> > }
> >
> > I tried,
> > - set_fact:
> >        user_name: "{{ grep_atm.stdout_lines }}"
> >         register: user_name.split(':')[0]
> >  - debug:
> >         var: user_name.split(':')[0]
> >
> > --
> > 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 <mailto:ansible-project%2Bunsu...@googlegroups.com>.
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/42fb2917-8336-42a2-979a-44573e91fd77n%40googlegroups.com.
>
>
>
> --
> 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-proje...@googlegroups.com <mailto:ansible-project%2Bunsu...@googlegroups.com>.
> --
> 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 <mailto:ansible-proje...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/CAG-N3P7NNjnbv7fZ5Vx0vmmTTyd9KntKpY-yOm75csqJ50cBmA%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CAG-N3P7NNjnbv7fZ5Vx0vmmTTyd9KntKpY-yOm75csqJ50cBmA%40mail.gmail.com?utm_medium=email&utm_source=footer>.


--
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.

signature.asc

Vladimir Botka

unread,
Jul 6, 2020, 10:57:34 AM7/6/20
to Jenisha T, ansible...@googlegroups.com
On Mon, 6 Jul 2020 04:44:18 -0700 (PDT)
Jenisha T <joy...@gmail.com> wrote:

> extract first value* anil *before (':')
>
> "msg": "*anil*:x:500:500:Anil:/home/anil:/bin/bash
>

user_name: "{{ my_string.split(':')[0] }}"

This is the correct expression, given the data is in the variable "my_string",
wherever it might come from.

--
Vladimir Botka

T. JENISHA

unread,
Jul 7, 2020, 12:18:43 AM7/7/20
to Vladimir Botka, Ansible Project
Hi Team
I get below error when I use split directly, 

The error was: 'list object' has no attribute 'split'

How to unlist in ansible


Best Regards
Jenisha T
Whatsapp: +91 07598087866




T. JENISHA

unread,
Jul 7, 2020, 1:11:45 AM7/7/20
to Ansible Project
In my case cut doesn't work. I m searching for a particular user from a password.
$ grep anil /etc/passwd


Best Regards
Jenisha T
Whatsapp: +91 07598087866




To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/b4c85876-5359-f104-cd6f-03667cd7f93b%40linuxia.de.

Karl Auer

unread,
Jul 7, 2020, 1:22:51 AM7/7/20
to ansible-project
so what's wrong with:

USR="jenisha"
FOUND=`grep $USR /etc/passwd | cut -d: -f1`
if [ -z "$FOUND" ] ; then
   echo "No such user: $USR"
else
   # do whatever...
fi

?

Regards, K.




--

Karl Auer { manager, systems support }
P: 1300 759 975
E: ka...@2pisoftware.com
2pisoftware.com

GPG/PGP : DF6A 43E5 FB9D D884 C6CA CD7F 5278 212D E80F C107
Previous: 301B 1F4E 624D AD99 242C 7A68 EC24 7113 E854 4A4E

Srinivas Naram

unread,
Jul 7, 2020, 1:43:46 AM7/7/20
to ansible...@googlegroups.com
Did you try this ?

 user_name: "{{ my_string[0].split(':')[0] }}"  

T. JENISHA

unread,
Jul 7, 2020, 1:53:09 AM7/7/20
to Ansible Project
Thank you, everyone, grep followed by cut gave me desired output



Best Regards
Jenisha T
Whatsapp: +91 07598087866




On Mon, 6 Jul 2020 at 19:50, Stefan Hornburg (Racke) <ra...@linuxia.de> wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/b4c85876-5359-f104-cd6f-03667cd7f93b%40linuxia.de.

Jenisha T

unread,
Jul 7, 2020, 1:55:59 AM7/7/20
to Ansible Project
This logic works. Thankyou

Srinivas Naram

unread,
Jul 7, 2020, 2:31:38 AM7/7/20
to ansible...@googlegroups.com
How do we incorporate if-else in set_fact ?

Reply all
Reply to author
Forward
0 new messages