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

Ansible:移除列表数组中channelId键的双引号

解决方法

要把当前Ansible输出转换成你要的格式,用Shell命令就能直接搞定,分两步处理:提取目标数组、移除键名的双引号。

命令示例

假设当前输出内容保存在output.txt文件中,执行以下命令:

sed -n '/"msg": \[/,/\]/p' output.txt | sed -e 's/"channelId":/channelId:/g' -e 's/"msg": \[/\[/'

命令说明

  1. 第一个sed命令:精准提取从"msg": [开始到数组结尾]的所有内容,自动过滤掉开头的TASK日志和主机标识行
  2. 第二个sed包含两个替换操作:
    • 全局替换"channelId":为channelId:,直接移除键名两侧的双引号
    • 把数组开头的"msg": [替换成[,对齐期望的数组格式

执行后就能得到你想要的结果:

[
    {
        channelId: "f35ead0f-8252-4975-9055-5d050161da01"
    },
    {
        channelId: "06f3466f-f894-4555-8ba6-7283e219b8e8"
    },
    {
        channelId: "de26fe02-a688-40fb-b580-46902c240e32"
    }
]

如果是想在Ansible任务里直接生成这种格式的输出,也可以通过调整debug模块的参数,结合json_query和字符串替换过滤器实现,但用Shell处理现有输出是最直接快捷的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:22:07