微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

yq 抓取所有不包含 word powershell 的元素

如何解决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 举报,一经查实,本站将立刻删除。