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

使用mikefarah/yq删除空值列表项及空examples节点

使用Go版yq处理YAML的示例过滤需求

可以通过以下yq命令完成需求,同时保留根层级的其他节点(如示例中的project):

yq e '
  .fields[] |= (
    .examples |= map(select(.value | (. != "" and . != null))) |
    if .examples | length == 0 then del(.examples) else . end
  )
' input.yaml

命令说明

  • .fields[] |=:遍历fields下的每个字段,对每个字段执行后续修改操作
  • .examples |= map(select(.value | (. != "" and . != null))):筛选examples数组中value既非空字符串也非null的列表项,自动移除不符合条件的项
  • if .examples | length == 0 then del(.examples) else . end:检查处理后的examples数组是否为空,若为空则删除整个examples节点,否则保留处理后的内容

验证效果

输入YAML:

project: people_ages
fields:
  first_name:
    examples:
      - value: Jon
        comment: A very common name
  last_name:
    examples:
      - value: ''
        comment: Where is his last name?
  age:
    examples:
      - value: 22
        comment: Just got out of college
      - value:
        comment: Not sure about his age

执行命令后输出:

project: people_ages
fields:
  first_name:
    examples:
      - value: Jon
        comment: A very common name
  last_name:
  age:
    examples:
      - value: 22
        comment: Just got out of college

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:55:23