Ansible使用split函数拆分字符串如何仅按第一个分隔符拆分
解决方法
Ansible 内置的 split 过滤器支持传入第二个参数,用于指定最大拆分次数,你只需将该参数设置为 1,即可实现仅拆分第一个分隔符的需求。
示例代码
你给出的示例场景可以按照如下方式实现:
- name: 按第一个分隔符拆分字符串 ansible.builtin.set_fact: # 取第一个分隔符前的内容 string1: "{{ origin_str.split('=', 1)[0] }}" # 取第一个分隔符后的全部剩余内容 string2: "{{ origin_str.split('=', 1)[1] }}" vars: origin_str: "hello=abcd=def=asd"
执行结果
string1的值为hellostring2的值为abcd=def=asd
原理解释
split 过滤器的第二个参数代表最多拆分的次数,设为1时,不管字符串后续还有多少个匹配的分隔符,都只会执行1次拆分,最终生成包含2个元素的列表,刚好匹配你需要的拆分规则。
内容的提问来源于stack exchange,提问作者Vini
相关产品推荐
相关产品推荐

