# select/reject filter parameters

**URL:** <https://forum.ansible.com/t/select-reject-filter-parameters/35103>\
**Category:** Ansible Project\
**Created:** [May 3, 2021, 9:15pm UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103 "2021-05-03T21:15:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos1](https://avatars.discourse-cdn.com/v4/letter/d/9dc877/32.png) [@Dimitri\_Yioulos1](https://forum.ansible.com/u/Dimitri_Yioulos1)\
**Post date:** [May 3, 2021, 9:15pm UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/1 "2021-05-03T21:15:14Z")

</div>

In for example, the following:

{{ hostvars[host][‘java\_one’][‘stderr\_lines’] | reject(‘contains’, ‘OpenJDK’) }}

or  
{{ hostvars[host][‘java\_one’][‘stderr\_lines’] | select(‘contains’, ‘Java™’) }}

how can i add a second value to select or reject? I want the action to take place if “OpenJDK” OR “Java™’” is found.

---

<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:** [May 3, 2021, 11:21pm UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/2 "2021-05-03T23:21:11Z")

</div>

Instead of "Testing if a list contains a value"  
[https://docs.ansible.com/ansible/latest/user\_guide/playbooks\_tests.html#testing-if-a-list-contains-a-value](https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html#testing-if-a-list-contains-a-value)  
you might want to use "Testing strings"  
[https://docs.ansible.com/ansible/latest/user\_guide/playbooks\_tests.html#testing-strings](https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html#testing-strings)

For example, use \*search\* and test the list is not empty to take  
action if "OpenJDK" OR "Java(TM)" is found

&nbsp;&nbsp;when: list\_of\_lines|  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select('search', 'OpenJDK|Java\(TM\)')|  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list\>  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length \> 0

---

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos1](https://avatars.discourse-cdn.com/v4/letter/d/9dc877/32.png) [@Dimitri\_Yioulos1](https://forum.ansible.com/u/Dimitri_Yioulos1)\
**Post date:** [May 4, 2021, 9:27am UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/3 "2021-05-04T09:27:53Z")

</div>

Ok. Here’s the entire playbook:

---

<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:** [May 4, 2021, 10:06am UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/4 "2021-05-04T10:06:43Z")

</div>

What content of prodjava.txt do you expect?

---

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos1](https://avatars.discourse-cdn.com/v4/letter/d/9dc877/32.png) [@Dimitri\_Yioulos1](https://forum.ansible.com/u/Dimitri_Yioulos1)\
**Post date:** [May 4, 2021, 11:00am UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/5 "2021-05-04T11:00:25Z")

</div>

This:

[myserver1.mydomain.com](http://myserver1.mydomain.com)  
[‘java version “1.7.0\_71”’, ‘Java™ SE Runtime Environment (build 1.7.0\_71-b14)’, ‘Java HotSpot™ 64-Bit Server VM (build 24.71-b01, mixed mode)’]

[myserver2.mydomain.com](http://myserver2.mydomain.com)

[‘java version “1.7.0\_71”’, ‘Java™ SE Runtime Environment (build 1.7.0\_71-b14)’, ‘Java HotSpot™ 64-Bit Server VM (build 24.71-b01, mixed mode)’]

---

<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:** [May 4, 2021, 11:15am UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/6 "2021-05-04T11:15:19Z")

</div>

Try this

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content: |  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{% for host in ansible\_play\_hosts %}  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{% set present = hostvars[host].java\_one.stderr\_lines|  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select('search', 'OpenJDK|Java\(TM\)')|  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list\>length \> 0 %}  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ host }}  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{% if present %}{{ hostvars[host].java\_one.stderr\_lines  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}}{% endif %}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{% endfor %}

For details see [https://jinja.palletsprojects.com/en/master/](https://jinja.palletsprojects.com/en/master/)

---

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos1](https://avatars.discourse-cdn.com/v4/letter/d/9dc877/32.png) [@Dimitri\_Yioulos1](https://forum.ansible.com/u/Dimitri_Yioulos1)\
**Post date:** [May 4, 2021, 11:34am UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/7 "2021-05-04T11:34:09Z")

</div>

OK, almost got this! And, I probably didn’t explain what I’m after very well. Based on the code you just provided, this is the output, e.g.:

[somehost.mydomain.com](http://somehost.mydomain.com)  
[‘java version “1.7.0\_65”’, ‘OpenJDK Runtime Environment (rhel-2.5.1.2.el6\_5-x86\_64 u65-b17)’, ‘OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)’]

[anotherhost.mydomain.com](http://anotherhost.mydomain.com)  
[‘java version “1.7.0\_71”’, ‘Java™ SE Runtime Environment (build 1.7.0\_71-b14)’, ‘Java HotSpot™ 64-Bit Server VM (build 24.71-b01, mixed mode)’]

However, I only want records containing “Java™” returned. How do I adjust the code to do that?

---

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos1](https://avatars.discourse-cdn.com/v4/letter/d/9dc877/32.png) [@Dimitri\_Yioulos1](https://forum.ansible.com/u/Dimitri_Yioulos1)\
**Post date:** [May 4, 2021, 11:39am UTC](https://forum.ansible.com/t/select-reject-filter-parameters/35103/8 "2021-05-04T11:39:52Z")

</div>

Sorry, I’m being messy here. If i try this, “select(‘search’, ‘!OpenJDK|Java(TM)’)|”, I get output like this:

[somehost.mydomain.com](http://somehost.mydomain.com)  
[anotherhost.mydomain.com](http://anotherhost.mydomain.com)  
[‘java version “1.7.0\_71”’, ‘Java™ SE Runtime Environment (build 1.7.0\_71-b14)’, ‘Java HotSpot™ 64-Bit Server VM (build 24.71-b01, mixed mode)’]
