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

如何替换Ansible变量值中的指定字符?以点号转横杠为例

错误原因

你的replace过滤器没有放在Jinja2表达式的{{ }}边界内部,导致整个过滤语句被当成普通字符串拼接在了版本号后面,没有触发过滤逻辑。

正确实现方法

方法1:直接使用replace过滤器(推荐)

将整个过滤逻辑放在大括号内部即可,该方法兼容Ansible 2.9.6版本:

- name: 替换版本号中的点为横杠
  set_fact: 
    joomlaversion2: "{{ joomlaversion | replace('.', '-') }}"

方法2:拆分后拼接实现

你提到的先拆分再拼接的方案也可以正常运行,写法如下:

- name: 替换版本号中的点为横杠
  set_fact: 
    joomlaversion2: "{{ joomlaversion.split('.') | join('-') }}"

结果验证

可以添加debug任务确认转换结果符合预期:

- name: 打印转换后的版本号
  debug:
    var: joomlaversion2

执行后输出的joomlaversion2值即为4-0-2。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:45:10