filter - 从 Ansible 变量中删除重复行
问题描述
我需要实现两件事。
从名为 install_loc 的 ansible 变量中删除重复条目
从 install_loc 中删除任何空的空行。
下面是 install_loc 变量的构造方式。
- set_fact:
install_loc: "{{ install_loc | default('') + item.split( )[4] | dirname + '\n' }}"
loop: "{{ fdet }}"
以下是将 install_loc 写入文件后的内容。
/app/logs/scripts
/app/logs/mrt
/app/logs/com
/app/logs/exe
/app/logs/scripts
/app/logs/mrt
/app/logs/com
/app/logs/exe
/app/logs/scripts
/app/logs/mrt
/app/logs/com
/app/logs/exe
如您所见,该变量是换行符以及重复条目。
所需的输出应如下所示。注意:顺序无关紧要:
/app/logs/scripts
/app/logs/mrt
/app/logs/com
/app/logs/exe
我试过了
- set_fact:
install_loc: "{{ install_loc | unique }}"
但我得到如下扭曲的文字:
set([u'\n', u'/', u'.', u'1', u'0', u'3', u'2', u'C', u'E', u'G', u'F', u'I', u'N', u'a', u'c', u'e', u't', u'i', u'm', u'o', u'o', u'n', u's', u's', u'r', u'u', u't', u'x'])
你能建议吗?
解决方案
解决方案:
- set_fact:
install_loc: "{{ install_loc.split('\n') | unique | select | list }}"
解释:
install_loc.split('\n')
install_loc
-按换行符拆分unique
- 删除重复项select
- 摆脱空值或空值list
- 从 Python“生成器”转换为列表
如果您想要一个字符串(作为输入),请替换list
为join('\n')
.
推荐阅读
- javascript - 如何使用 JQuery 将 HTML 标签更改为另一个标签?
- java - 在列表中映射 java 到 JSON 的转换问题
- php - 按需生成css,但我得到 net::ERR_ABORTED 404
- react-bootstrap-typeahead - React Bootstrap Typeahead - 设置输入样式
- javascript - 如何从 mongodb 查询的日期范围中排除星期日?
- dpdk - DPDK 示例应用程序 ipsec-secgw 使用 virtio NIC 失败
- html - 如何使用 0px 字体大小和 text-align 删除 html 中未选择的区域:在父标签中调整样式
- python - 调用 .__module__ 返回 None 而不是包名
- java - Spring security:多种安全配置和正则表达式匹配器
- optimization - Neo4j 密码查询性能