所以我有一个场景,我正在使用 ansible 的机器上执行 shell 命令以获取有关标准输出的一些信息。我正在使用 register
将其结果记录在变量 my_info
中并使用 debug
打印 my_info
,我看到了它附加了 \n
的结果(Ansible 附加了\n 。Linux 上的相同命令不附加\n")。当我在配置模板中使用 my_info
时它在配置中打印了一个新行,因此弄乱了我的配置。
下面是代码和输出的过程。
Ansible 代码:
- name: calculate range address start
raw: grep 'CONFIG_PARAMS' /path/to/the/file | head -n 1
register: my_info
输出:
ok: [My_HOST] => {
"msg": "CONFIG_PARAMS\n"
}
我们如何从这个输出中删除空格或者可能对模板进行更改以便不打印新行。
最佳答案
您可以使用 Jinja2 的内置过滤器为达到这个。具体来说,使用trim
,例如:
- debug: msg='{{ my_info.stdout | trim}}'
关于python - 如何通过ansible从shell命令的标准输出中删除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33871906/