# How to split value from list

**URL:** <https://forum.ansible.com/t/how-to-split-value-from-list/33328>\
**Category:** Ansible Project\
**Created:** [July 6, 2020, 11:44am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328 "2020-07-06T11:44:18Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jenisha\_T](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@Jenisha\_T](https://forum.ansible.com/u/Jenisha_T)\
**Post date:** [July 6, 2020, 11:44am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/1 "2020-07-06T11:44:18Z")

</div>

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** ❌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]

---

<div class="post-metadata">

**Author:** ![Dick\_Visser](https://avatars.discourse-cdn.com/v4/letter/d/d9b06d/32.png) [@Dick\_Visser](https://forum.ansible.com/u/Dick_Visser)\
**Post date:** [July 6, 2020, 11:49am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/2 "2020-07-06T11:49:02Z")

</div>

Based on your data, look at this module:  
[https://docs.ansible.com/ansible/latest/modules/getent\_module.html](https://docs.ansible.com/ansible/latest/modules/getent_module.html)

---

<div class="post-metadata">

**Author:** ![Jenisha\_T](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@Jenisha\_T](https://forum.ansible.com/u/Jenisha_T)\
**Post date:** [July 6, 2020, 12:46pm UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/3 "2020-07-06T12:46:54Z")

</div>

It supports only for the database. My output in register

---

<div class="post-metadata">

**Author:** ![Dick\_Visser](https://avatars.discourse-cdn.com/v4/letter/d/d9b06d/32.png) [@Dick\_Visser](https://forum.ansible.com/u/Dick_Visser)\
**Post date:** [July 6, 2020, 1:04pm UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/4 "2020-07-06T13:04:55Z")

</div>

you should either use set\_fact, or register. Both doesn't make sense.

---

<div class="post-metadata">

**Author:** ![Srinivas\_Naram](https://avatars.discourse-cdn.com/v4/letter/s/eb9ed0/32.png) [@Srinivas\_Naram](https://forum.ansible.com/u/Srinivas_Naram)\
**Post date:** [July 6, 2020, 1:32pm UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/5 "2020-07-06T13:32:14Z")

</div>

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]}’

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [July 6, 2020, 2:20pm UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/6 "2020-07-06T14:20:32Z")

</div>

> 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  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;racke

---

<div class="post-metadata">

**Author:** ![vbotka](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/vbotka/32/359_2.png) [@vbotka](https://forum.ansible.com/u/vbotka)\
**Post date:** [July 6, 2020, 2:57pm UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/7 "2020-07-06T14:57:17Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Jenisha\_T](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@Jenisha\_T](https://forum.ansible.com/u/Jenisha_T)\
**Post date:** [July 7, 2020, 4:18am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/8 "2020-07-07T04:18:11Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Jenisha\_T](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@Jenisha\_T](https://forum.ansible.com/u/Jenisha_T)\
**Post date:** [July 7, 2020, 5:11am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/9 "2020-07-07T05:11:11Z")

</div>

In my case cut doesn’t work. I m searching for a particular user from a password.  
$ grep anil /etc/passwd

---

<div class="post-metadata">

**Author:** ![Karl\_Auer](https://avatars.discourse-cdn.com/v4/letter/k/cc9497/32.png) [@Karl\_Auer](https://forum.ansible.com/u/Karl_Auer)\
**Post date:** [July 7, 2020, 5:22am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/10 "2020-07-07T05:22:24Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Srinivas\_Naram](https://avatars.discourse-cdn.com/v4/letter/s/eb9ed0/32.png) [@Srinivas\_Naram](https://forum.ansible.com/u/Srinivas_Naram)\
**Post date:** [July 7, 2020, 5:43am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/11 "2020-07-07T05:43:17Z")

</div>

Did you try this ?

user\_name: “{{ my\_string[0].split(‘:’)[0] }}”

---

<div class="post-metadata">

**Author:** ![Jenisha\_T](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@Jenisha\_T](https://forum.ansible.com/u/Jenisha_T)\
**Post date:** [July 7, 2020, 5:52am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/12 "2020-07-07T05:52:37Z")

</div>

Thank you, everyone, grep followed by cut gave me desired output

---

<div class="post-metadata">

**Author:** ![Jenisha\_T](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@Jenisha\_T](https://forum.ansible.com/u/Jenisha_T)\
**Post date:** [July 7, 2020, 5:55am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/13 "2020-07-07T05:55:59Z")

</div>

This logic works. Thankyou

---

<div class="post-metadata">

**Author:** ![Srinivas\_Naram](https://avatars.discourse-cdn.com/v4/letter/s/eb9ed0/32.png) [@Srinivas\_Naram](https://forum.ansible.com/u/Srinivas_Naram)\
**Post date:** [July 7, 2020, 6:31am UTC](https://forum.ansible.com/t/how-to-split-value-from-list/33328/14 "2020-07-07T06:31:09Z")

</div>

How do we incorporate if-else in set\_fact ?
