代码之家  ›  专栏  ›  技术社区  ›  yrein

Jinja模板dict/list过滤器“包含”或“类似”-Saltstack

  •  1
  • yrein  · 技术社区  · 7 年前

    价值观( 无法修改 ):

    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 %}
    

    =>没有成功

    2 回复  |  直到 7 年前
        1
  •  3
  •   MrName    7 年前

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

        2
  •  0
  •   Evin Weissenberg    4 年前

    如果要执行子字符串搜索,可以检查变量是否存在这样的字符串匹配。确保将变量设置为字符串。

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