如何解决yq 抓取所有不包含 word powershell 的元素
我想以 repository:tag 格式检索在 cmp
部分中不包含 repository
的所有图像的列表。
我正在尝试使用 yq
,但遇到的问题很少。
我的yaml文件结构:
actions:
install: ...
uninstall: ...
images:
foo:
imageType:"docker"
repository: localhost:3000/cmp/foo
tag: latest
bar:
imageType:"docker"
repository: localhost:3000/bar
tag: latest
fizz:
imageType:"docker"
repository: localhost:3000/fizz
tag: latest
我的 Powershell 脚本:
$keys = yq eval 'del(.images | .. | select(.repository == """*cmP*""")) | .images | keys' $porterPath
foreach($key in $keys) {
$key = $key.Replace("- ","") #All elements of $keys need to be strip from "- "
$repository = yq eval ".images | .$key | .repository"
$tag = yq eval ".images | .$key | .tag"
$image = $repository":"$tag
writetoFile($image)
}
第一个 yq 表达式是将 - repository
添加到 $keys
中的输出列表的末尾,因此它看起来像这样:
- bar
- fizz
- repository
为什么我在 - repository
的末尾得到 $keys
?
有没有更好的方法用 yq 转换 yaml 以获得输出列表包含: 存储库:标签?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。