如何使用Mike Farah’s yq在YAML文件指定键后插入新键
使用Mike Farah’s yq在指定键后添加新键
示例原始YAML
key1: value1 key2: value2 key3: value3
需求
在key2之后插入key2a: value2a和key2b: value2b,维持键的顺序以便人工编辑。
解决方案(yq v4版本)
使用yq的insert函数,通过链式操作依次插入两个新键:
查看执行结果(不修改原文件)
yq eval '. |= insert("key2a", "value2a", after="key2") | . |= insert("key2b", "value2b", after="key2a")' input.yaml
直接修改原文件(in-place编辑)
添加-i参数直接覆盖原文件:
yq eval -i '. |= insert("key2a", "value2a", after="key2") | . |= insert("key2b", "value2b", after="key2a")' input.yaml
执行结果
key1: value1 key2: value2 key2a: value2a key2b: value2b key3: value3
说明:insert(键名, 值, after=目标键)函数会在指定目标键的后方插入新键值对,链式操作确保key2b紧跟在key2a之后,完美匹配需求的键顺序。
内容的提问来源于stack exchange,提问作者Stephan
相关产品推荐
相关产品推荐

