如何用 yq 的 pick 按指定顺序保留映射键并用 omit 剔除键

发布时间:2026/11/15 1:39:37

如何用 yq 的 pick 按指定顺序保留映射键并用 omit 剔除键 如何用 yq 的 pick 按指定顺序保留映射键并用 omit 剔除键【免费下载链接】yqyq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor项目地址: https://gitcode.com/GitHub_Trending/yq/yq处理 YAML 文件时经常遇到这样的需求一个映射里键很多但只想要其中几个并且希望输出的键顺序由自己指定或者相反想按黑名单把不要的键剔除掉。yq 提供了两个配套的操作符完成这件事pick按指定键列表保留键并且返回的键顺序与 pick 列表中的顺序一致omit则按指定键列表剔除键。两者都是 yq 表达式的一部分yq 采用类 jq 语法对 YAML、JSON 等格式通用。本文给出这两个操作符在映射键上的完整用法命令、输入文件、对应的文档示例输出以及如何用-i把结果写回文件。准备条件已安装 yq 二进制。yq 用 Go 编写提供无依赖的单文件二进制可通过直接下载二进制、brew install yq或snap install yq等方式安装参见 README.md 的 Install 章节。一个待处理的 YAML 文件。本文沿用 yq 文档中 pick.md 使用的样例文件sample.ymlmyMap: cat: meow dog: bark thing: hamster hamster: squeaksample.yml为占位文件名实际使用时替换成你自己的 YAML 文件路径即可。用 pick 按指定顺序保留映射键对目标映射使用相对赋值形式|把映射替换为pick(...)的结果。语法要点|是 assign 操作符 的相对形式以 LHS 节点本身作为上下文对 RHS 求值yq .myMap | pick([hamster, cat, goat]) sample.yml规则来自 pick.md返回的键顺序与 pick 列表中的顺序一致这里先列出hamster、再cat所以hamster排在前面列表中不存在于映射的键如goat会被跳过不会报错。按文档示例上面的命令输出为myMap: hamster: squeak cat: meow可选分支指定键置顶同时保留其余全部键如果不想丢键只想让某几个键排到前面可以把指定键 现有全部键拼成列表后去重再交给pick。文档给出的写法是yq .myMap | pick( ([thing] keys) | unique) sample.yml其中keys操作符返回当前映射的全部键见 keys.mdunique去掉拼接后产生的重复项并保持原数组顺序见 unique.md。文档示例输出myMap: thing: hamster cat: meow dog: bark hamster: squeak用 omit 按黑名单剔除键omit与pick互补你列出不想要的键其余键保留。语法与pick相同只需替换操作符名见 omit.mdyq .myMap | omit([hamster, cat, goat]) sample.yml规则同样是不存在的键被跳过goat不在映射中不影响执行。按文档示例输出为myMap: dog: bark thing: hamster注意区别omit保留的是原文件中未被剔除的键它们的相对顺序维持原文件的键顺序dog在thing前而pick的输出顺序由你传入的列表决定。选择哪个操作符取决于你的需求是白名单保留指定键、自己定序还是黑名单剔除指定键、其余不动。把结果写回文件上面的命令只把结果打印到标准输出不修改原文件。README 的 Quick Usage Guide 给出原地更新方式加-i标志yq -i .myMap | pick([hamster, cat, goat]) sample.yml执行后sample.yml的内容被更新为 pick 的结果。该操作会直接改写文件没有备份机制执行前请确认文件可被覆盖或自行先做备份。验证方式与边界验证方法直接看命令输出或-i后查看文件内容对照文档示例判断pick输出的键集合应等于pick 列表 ∩ 原映射键集合且键顺序与 pick 列表一致omit输出应为原映射去掉黑名单键剩余键维持原顺序。两个操作符都接受不存在的键而不报错所以输出与预期不符时应优先检查键名拼写是否与映射中的键一致而不是担心缺少键导致失败。pick/omit同样适用于数组此时列表传的是下标而非键名且同样跳过不存在的下标。例如对文件- cat - leopard - lion文档示例命令yq pick([2, 0, 734, -5]) sample.yml输出- lion - cat对应的数组 omit 示例yq omit([2, 0, 734, -5]) sample.yml输出- leopard见 omit.md。本文主路径是映射键数组用法仅作了解。更多表达式用法可参考仓库中pkg/yqlib/doc/operators/下的操作符文档目录。【免费下载链接】yqyq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor项目地址: https://gitcode.com/GitHub_Trending/yq/yq创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/25 6:02:05

Topaz Photo AI闪退蓝屏问题诊断与解决方案

1. 问题现象与初步诊断遇到Topaz Photo AI 4.0.1闪退后蓝屏的问题时,我首先注意到这是一个典型的软件与系统兼容性冲突案例。从技术角度看,这类问题通常涉及三个层面的交互异常:应用程序自身缺陷、显卡驱动兼容性问题以及系统内存管理故障。在…

2026/11/15 1:37:55

电工证挂靠做什么内部消息你必须知道

电工证挂靠做什么内部消息你必须知道 怕考不过白交培训费,别再被培训机构忽悠了,今天给你讲讲电工证挂靠到底能干啥,还有内部消息告诉你报考前必须知道的那些事。 电工证挂靠做什么?别再花冤枉钱了…

2026/11/15 1:37:55

特种作业证报考指南:我是特种兵唐工扮演者如何通过率揭秘

特种作业证报考指南:我是特种兵唐工扮演者如何通过率揭秘 你是不是也担心学历不高,报不了特种作业证?其实不然,只要符合基本条件,哪怕初中毕业也能报考,关键是要掌握报名流程和备考技巧。特别是像“我是特种兵唐工扮演者”这样的角色,虽然不直接对应现…

2026/11/15 1:37:55

电工证属于几级职称的多少钱怎么考更稳妥

电工证属于几级职称的多少钱怎么考更稳妥 实操考试心里没底怕挂科,这是很多准备报考电工证的学员最真实的心理写照。尤其是在当前电工行业门槛逐渐提高的背景下,持证上岗已经成为行业标配。但很多人对电工证到底是几级职称、考试难度、费用怎么算、未来能走…

2026/11/15 1:37:55

阆中在哪里考电工证?工地太忙根本没时间复习考试怎么办

阆中在哪里考电工证?工地太忙根本没时间复习考试怎么办 工地太忙根本没时间复习考试,你是不是也这样?尤其是像安阳的应届毕业生,刚毕业就投入到项目一线,根本没有多余的时间去准备电工证考试,更别说找到【在哪考】的地方了。今天就来聊聊【阆中在哪里考…

2026/11/15 1:37:55

电工证怎么考怎么分级良心建议来了 老电工教你少走弯路

电工证怎么考怎么分级良心建议来了 老电工教你少走弯路 证书过期了不知道怎么复审延期?别慌,你不是一个人在战斗,很多人在考电工证的路上都踩过坑,尤其是那些证书快到期却不知道怎么操作的兄弟。今天就从 驻马店项目现场管理员 的角度,结合…

2026/11/15 0:02:49

电工证考试口诉怎么准备值不值得考

电工证考试口诉怎么准备值不值得考 实操考试心里没底怕挂科,这是大多数准备考电工证的人心里最真实的感受。尤其是面对【电工证考试口诉】环节,很多人不知道该怎么准备,甚至担心自己说不好就被淘汰。其实,只要掌握方法, 值不值得考…

2026/11/15 0:02:49

桑植县考电工证千万别踩坑!报名全流程教你避坑

桑植县考电工证千万别踩坑!报名全流程教你避坑 你是不是也遇到过这种情况:想考个电工证,但不知道从哪儿下手,怕被中介坑,怕花冤枉钱,更怕考了证还不能用?别急,这正是你该看这篇文章的原因。在桑植县考电工证,确实有很多人被坑过,但只要你知道流程、…

2026/11/15 0:02:49

电工证考试口诉怎么准备值不值得考

电工证考试口诉怎么准备值不值得考 实操考试心里没底怕挂科,这是大多数准备考电工证的人心里最真实的感受。尤其是面对【电工证考试口诉】环节,很多人不知道该怎么准备,甚至担心自己说不好就被淘汰。其实,只要掌握方法, 值不值得考…

2026/11/15 0:02:49

桑植县考电工证千万别踩坑!报名全流程教你避坑

桑植县考电工证千万别踩坑!报名全流程教你避坑 你是不是也遇到过这种情况:想考个电工证,但不知道从哪儿下手,怕被中介坑,怕花冤枉钱,更怕考了证还不能用?别急,这正是你该看这篇文章的原因。在桑植县考电工证,确实有很多人被坑过,但只要你知道流程、…

2026/11/13 22:32:11

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/13 12:14:39

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑