You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ansible渲染的Jinja模板中插入换行且不影响输出?

Ansible CSV模板换行不输出换行的解决方法

方法1:用Jinja2的-标记消除空白

在逗号后换行时,给变量块的末尾或逗号前添加-标记,它会吃掉该侧的所有空白字符(包括换行),确保最终输出无多余换行。示例:

{{ hostvars[h]['myvar'][0]['firstvar'] | default('foo') }},-
{{ hostvars[h]['myvar'][0]['secondvar'] | default('bar') }},-
{{ hostvars[h]['myvar'][0]['thirdvar'] | default('baz') }}

方法2:列表收集字段后join拼接

先把所有CSV字段存入列表变量,再用join(',')拼接成一行。模板里可以分行写列表元素,输出自动合并为连续的CSV行,可读性和维护性都更强。示例:

{% set csv_fields = [
    hostvars[h]['myvar'][0]['firstvar'] | default('foo'),
    hostvars[h]['myvar'][0]['secondvar'] | default('bar'),
    hostvars[h]['myvar'][0]['thirdvar'] | default('baz')
] %}
{{ csv_fields | join(',') }}

方法3:用注释包裹换行

把模板中的换行放在Jinja2注释块内,这样换行不会被解析到输出里。示例:

{{ hostvars[h]['myvar'][0]['firstvar'] | default('foo') }}{#
#},{{ hostvars[h]['myvar'][0]['secondvar'] | default('bar') }}{#
#},{{ hostvars[h]['myvar'][0]['thirdvar'] | default('baz') }}

内容的提问来源于stack exchange,提问作者dr_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:18:14