从 Ansible 中的变量中提取子字符串

Sug*_*ran 3 ansible ansible-facts

我想从 Ansible 中的变量中删除特定的子字符串并将结果存储到另一个变量中。假设我有如下内容:

greeting: "Hello_World"

我想从问候语中删除子字符串“_World”并将结果存储在另一个 Ansible 变量中。

例子: greet_word: "Hello"

提前致谢!

Vla*_*tka 15

问:删除子字符串'_World'

答:还有更多选择:

  greet_word: "{{ greeting|regex_replace('^(.*)_World(.*)$', '\\1\\2') }}"
Run Code Online (Sandbox Code Playgroud)

给出

  greet_word: Hello
Run Code Online (Sandbox Code Playgroud)
  • 在下划线“_”上拆分字符串并获取第一项。下面的表达式给出相同的结果。
  greet_word: "{{ greeting.split('_').0 }}
Run Code Online (Sandbox Code Playgroud)
  greet_word: "{{ greeting.split('_')|first }}
Run Code Online (Sandbox Code Playgroud)
  • 使用 Jinja 过滤器更换。下面的表达式给出相同的结果。
  greet_word: "{{ greeting|replace('_World', '') }}"
Run Code Online (Sandbox Code Playgroud)