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

如何用yq解码YAML列表的Base64值并关联ID映射字段

进阶需求:添加ID对应的named_oid字段

假设映射ID与名称的YAML文件mapping.yaml内容如下:

oidcIssuer: 1.3.6.1.4.1.57264.1.1
githubWorkflowTrigger: 1.3.6.1.4.1.57264.1.2

解决方案

加载映射文件,遍历原始YAML元素,根据id匹配映射项添加named_oid字段,同时保留Base64解码操作,命令如下:

yq eval --slurpfile map mapping.yaml '
  .[] |= (
    .named_oid = ($map[] | to_entries[] | select(.value == .id).key) // null
    | .value |= @base64d
  )
' input.yaml

说明

  1. --slurpfile map mapping.yaml:将映射文件加载为变量$map
  2. to_entries[]:把映射的键值对转为{key: "名称", value: "ID"}格式,方便按ID查找名称
  3. select(.value == .id).key:筛选与当前元素id匹配的映射项,取出对应名称作为named_oid的值
  4. // null:无匹配ID时,named_oid设为null(若不需要无匹配的字段,可删除此部分)
  5. 同时保留.value |= @base64d完成解码

执行后输出的YAML会包含named_oid字段,格式与预期一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:55:22