Ansible技术问询:如何提取第4个四个反斜杠后的字符串并解决split报错?
解决方案
报错原因
dn_var是列表类型(从输入数据可见"dn_var": ["\\TEST1\\TEST2\\..."]),而split()是字符串专属方法,直接对列表调用会触发'list object' has no attribute 'split'错误。
正确过滤方法
需要先提取列表中的字符串元素,再执行拆分操作:
方法1:直接通过索引取列表元素
- name: 提取目标字符串 set_fact: team_name: "{{ dn_var[0].split('\\')[3] }}"
方法2:使用Ansible过滤器更优雅地处理
- name: 提取目标字符串 set_fact: team_name: "{{ dn_var | first | split('\\') | nth(3) }}"
(可选)转为首字母小写格式
如果需要将结果转为Test 4(原字符串是TEST 4),可以追加capitalize过滤器:
- name: 提取并格式化目标字符串 set_fact: team_name: "{{ dn_var | first | split('\\') | nth(3) | capitalize }}"
内容的提问来源于stack exchange,提问作者Raj87
相关产品推荐
相关产品推荐

