gpt4 book ai didi

filter - 从 Ansible 变量中删除重复行

转载 作者:行者123 更新时间:2023-12-05 05:07:39 25 4
gpt4 key购买 nike

我需要完成两件事。

  1. 从名为 install_loc 的 ansible 变量中删除重复条目

  2. 从 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 - 去除空值或 null 值
  • list - 从 Python“生成器”转换为列表

如果您想要单个字符串(作为输入),请将 list 替换为 join('\n')

关于filter - 从 Ansible 变量中删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58947195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com