首页 > 解决方案 > Ansible 字符串拆分

问题描述

我在ansible中有一个基于分隔符的拆分功能。但只想获得第一次出现的分隔符字符串,其余的作为第二个字符串。

string: "hello=abcd=def=asd"
string1= string.split("=")[0]
string2= string.split("=)[1..n] (This is what i missing)

我如何使用 string.split 在 ansible 中实现这一点?

标签: ansibleansible-template

解决方案


问:获取第一次出现的分隔符字符串,其余的作为第二个字符串。

A:再次加入字符串的其余部分,例如

    - set_fact:
        string1: "{{ string.split('=')[0] }}"
    - set_fact:
        string2: "{{ string.split('=')[1:]|join('=') }}"

  string1: hello
  string2: abcd=def=asd

或者,将maxsplit参数设置为 1 并重用该数组。例如,下面的任务给出了相同的结果

    - set_fact:
        string1: "{{ _arr.0 }}"
        string2: "{{ _arr.1 }}"
      vars:
        _arr: "{{ string.split('=', 1) }}"

推荐阅读