string - 如何从 Ansible 中的 lookup() 模块的结果中删除换行符字符 '\n'?

标签 string replace ansible

我正在使用 [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/

相关文章:

java - 在 Java 中从电子邮件中提取服务器名称

python - 不区分大小写的 Python 字符串 split() 方法

replace - 使用 tr 将换行符替换为空格

php - 在 PHP 中替换文件

ansible - 使用 Ansible Cloudformation 模块配置 CoreOS 集群

javascript - 如何使用正则表达式在字符串中强制使用字符/特殊字符

java - 从字符串创建 XML

javascript - 查找字符串中字符出现的次数

ubuntu - 如何在 ubuntu 机器的客户端中使用 Ansible 安装 httpd 包

python-3.x - 在 debian 11 Bullseye 上使用 Ansible 安装损坏的软件包