这是我在剧本上要做的一项任务:
- name: Parse 'LANGUAGE' from current locale and language configuration
set_fact:
locale_language: "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_lang], true) | first }}"
我正在尝试找到一种方法,将多个过滤器行分成多行以使其更具可读性,但是我没有做任何工作。甚至有可能在不使整个内容变得更复杂的情况下进行阅读?
答案 0 :(得分:3)
您可以尝试这样的事情,
- name: Parse 'LANGUAGE' from current locale and language configuration
set_fact:
locale_language: "{{ locale_status.stdout \
| regex_search('LANGUAGE=([^\n]+)', '\\1') \
| default([locale_lang], true) \
| first }}"
正如我在下面的任务中测试的那样,它工作正常,
tasks:
- set_fact:
locale_language: "{{ shubham \
| quote }}"
- debug:
msg: "{{ locale_language }}"
答案 1 :(得分:0)
Jinja解析一旦开始,(据我所知和经验),它变得对空格不敏感;因此,只需使用常规的YAML scalar line folding构造,就可以开始比赛了:
locale_language: >-
{{- locale_status.stdout
| regex_search('LANGUAGE=([^\n]+)', '\\1')
| default([locale_lang], true)
| first -}}
在Jinja表达式的开始和结尾使用"whitespace consuming operators"由您决定(当然,这取决于最终事实是否容忍空白)