Jinja 模板 dict/list 过滤器 "contains" 或 "like" - Saltstack

Jinja Template dict/list filter "contains" or "like" - Saltstack

我想过滤包含 'foo_' 或以 'foo_' 开头的值并忽略列表中的其他值。

值(无法修改):

TEST:
- foo_a
- foo_b
- bar_a
- bar_b
- test_c

模板:

{% for value in grains['TEST'] %}
- do something with value that contains "foo_"
{% endfor %}

我该怎么做?

我试过:

{% for value in grains['TEST']|map(^foo_) %}
- do something with value that contains "foo_"
{% endfor %}

=> 没有成功

假设每个值都是一个字符串(似乎是这种情况),您应该能够对字符串使用标准的 startswith 方法,例如 {% if value.startswith('foo_') %}

如果你想进行子字符串搜索,你可以像这样检查字符串匹配的变量。确保将变量变成字符串。

{% if '.mov' in var|string %}
   do something...
{% endif %}