# substring variables?

**URL:** <https://forum.ansible.com/t/substring-variables/17902>\
**Category:** Ansible Project\
**Created:** [April 3, 2015, 2:22pm UTC](https://forum.ansible.com/t/substring-variables/17902 "2015-04-03T14:22:58Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kyle](https://avatars.discourse-cdn.com/v4/letter/k/848f3c/32.png) [@Kyle](https://forum.ansible.com/u/Kyle)\
**Post date:** [April 3, 2015, 2:22pm UTC](https://forum.ansible.com/t/substring-variables/17902/1 "2015-04-03T14:22:58Z")

</div>

I can’t find anything in ansible nor jinja documentation regarding substring. I’m looking for something such as this:

`

# variable passed at command line

host=prd01denutl01

{{ host | substring(0,5) }}  
 → prd01

{{ host | substring(6,3) }}  
 → den

{{ host | substring(9,3) }}  
 → utl

`

Is there any functionality for this?

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [April 3, 2015, 2:33pm UTC](https://forum.ansible.com/t/substring-variables/17902/2 "2015-04-03T14:33:28Z")

</div>

In python/jinja2 strings can be looked as lists, so host[0:5] will  
give you the first 5 character substring of the string in host.

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [April 3, 2015, 2:39pm UTC](https://forum.ansible.com/t/substring-variables/17902/3 "2015-04-03T14:39:06Z")

</div>

small demo play, the numbers are a bit diff than in substring, but it  
works the way you want.

- hosts: localhost  
&nbsp;&nbsp;gather\_facts: False  
&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;host: prd01denutl01  
&nbsp;&nbsp;tasks:  
&nbsp;&nbsp;&nbsp;&nbsp;- debug: msg={{ host[0:5] }}  
&nbsp;&nbsp;&nbsp;&nbsp;- debug: msg={{ host[5:8] }}  
&nbsp;&nbsp;&nbsp;&nbsp;- debug: msg={{ host[8:11] }}

ansible-playbook play.yml

---

<div class="post-metadata">

**Author:** ![Jan-Piet\_Mens](https://avatars.discourse-cdn.com/v4/letter/j/34f0e0/32.png) [@Jan-Piet\_Mens](https://forum.ansible.com/u/Jan-Piet_Mens)\
**Post date:** [April 3, 2015, 2:42pm UTC](https://forum.ansible.com/t/substring-variables/17902/4 "2015-04-03T14:42:35Z")

</div>

> Is there any functionality for this?

The variable is a Jinja2 string, so you can split it like a Python  
string:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ host }} -\> prd01denutl01  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ host[0:4] }} -\> prd0  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ host[5:7] }} -\> de

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-JP

---

<div class="post-metadata">

**Author:** ![Kyle](https://avatars.discourse-cdn.com/v4/letter/k/848f3c/32.png) [@Kyle](https://forum.ansible.com/u/Kyle)\
**Post date:** [April 3, 2015, 2:53pm UTC](https://forum.ansible.com/t/substring-variables/17902/5 "2015-04-03T14:53:50Z")

</div>

Awesome, thanks guys
