Ansible截短连接字符串
我正在Ansible中生成一个yaml模板,并尝试截断两个串联字符串: 在这里,以下代码不起作用,因为连接没有正确地导入regex_replace。 我只需要前n个字符(本例中的前10个字符) 通常我可以把这两个变量组合成一个变量,然后Ansible截短连接字符串,ansible,Ansible,我正在Ansible中生成一个yaml模板,并尝试截断两个串联字符串: 在这里,以下代码不起作用,因为连接没有正确地导入regex_replace。 我只需要前n个字符(本例中的前10个字符) 通常我可以把这两个变量组合成一个变量,然后 {{variabel[:10]} 但在这种情况下,我无法做到这一点,因为我正在处理的文件正在与变量组合,然后保存为yaml文件 基本上,我想截断字符串,而不必首先组合或创建新变量 - hosts: localhost gather_facts: False
{{variabel[:10]}
但在这种情况下,我无法做到这一点,因为我正在处理的文件正在与变量组合,然后保存为yaml文件
基本上,我想截断字符串,而不必首先组合或创建新变量
- hosts: localhost
gather_facts: False
vars:
foo: "somelongstring"
tasks:
- name: Display debug output
debug:
msg: "{{ foo + '-moretext' | regex_replace('^.{0,10}', '\\1') }} "
要在复杂表达式(而不是一系列筛选器)上应用筛选器或运算符,必须用括号将其括起来 因此,要在1个操作中截断串联的结果:
msg: "{{ (foo + '-moretext')[:10] }} "
顺便说一句,还有:
正是我想要的,谢谢。。我在ansible docs上找不到truncate筛选器,但我确实找到了它,它将在我的书签文件夹中有一个安全的位置:大多数筛选器都是jinja2内置筛选器:。Ansible添加的筛选器记录在此处:。您找到的链接是所有可用筛选器的良好摘要。
msg: "{{ (foo + '-moretext') | truncate(10, True, '') }} "