我正在使用 [file lookup] 读取整个文件并将内容存储在变量中。我的剧本是这样的:
- name: Store foo.xml contents in a variable
set_fact:
foo_content: "{{ lookup('file', 'foo.xml' ) | replace('\n', '')}}"
所以上面的代码读取
foo.xml
文件并将其存储在变量中,但问题是当 foo.xml
其中有换行符,它还包括变量中的换行符。我的
foo.xml
是这个文件:<?xml version="1.0" encoding="utf-8"?>
<initialize_param>
<secrets>
<my_secret id="99">3VMjII6Hw+pd1zHV5THSI712y421USUS8124487128745812sajfhsakjfasbfvcasvnjasjkvbhasdfasgfsfaj5G8A9+n8CkLxk7Dqu0G8Jclg0eb1A5xeFzR3rrJHrb2GBBa7PJNVx8tFJP3AtF6ek/F/WvlBIs2leX2fq+/bGryKlySuFmbcwBsThmPJC5Z5AwPJgGZx</my_secret>
</secrets>
</initialize_param>
输出删除换行符\n 但也包括制表符\r &\t
我需要摆脱
\n
,也需要摆脱额外的格式(\r &\t),此外,在替换过滤器之后,我在触发数据库更新查询时遇到错误stderr: /bin/sh: 1: cannot open ?xml: No such file
最佳答案
使用神社trim筛选:
"{{ lookup('file', 'foo.xml' ) | trim }}"
关于string - 如何从 Ansible 中的 lookup() 模块的结果中删除换行符字符 '\n'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32016123/