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 %}
我想过滤包含 '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 %}