这可能与我发布的另一个问题有关:yq (GO/Mike Farah) 对所有数组进行递归排序? https://stackoverflow.com/questions/73746627/yq-go-mike-farah-sort-all-arrays-recursively
迈克·法拉赫yq
提供文档使数组唯一 https://mikefarah.gitbook.io/yq/operators/unique但我无法弄清楚如何将其应用于嵌套更深的列表
Input
classes:
driver:
fields:
- height
- age
- age
vehicle:
fields:
- model
- model
- color
- year
所需输出
classes:
driver:
fields:
- age
- height
vehicle:
fields:
- color
- model
- year
天真地试图在全球范围内实现统一
cat to_sort.yaml | yq 'unique'
错误:仅支持唯一数组
如果需要争论,我不知道该提供什么。我不想只对一个显式路径进行排序,但我确实尝试过:
cat to_sort.yaml | yq 'unique(.classes.driver.fields)'
错误:表达式错误,请检查表达式语法
我见过一些yq
必须首先执行选择操作的示例,但我不知道在这种情况下要尝试什么。
yq e '(... | select(type == "!!seq")) |= unique' input
将递归循环所有项目,并且select() https://mikefarah.gitbook.io/yq/operators/select那些type
!!seq
然后更新(|=
)那些有unique
:
提供的输入结果:
classes:
driver:
fields:
- height
- age
vehicle:
fields:
- model
- color
- year
-
...
: 递归下降 https://mikefarah.gitbook.io/yq/operators/recursive-descent-glob#match-values-and-map-keys-form-...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)