gpt4 book ai didi

awk - 如何转义Fish shell变量以用作awk模式?

转载 作者:行者123 更新时间:2023-12-02 18:55:47 26 4
gpt4 key购买 nike

我正在写一个函数来列出给定docker存储库中的最新图像:

function docker-latest
set repo $argv[1]
docker images | awk "/$repo/ && /latest/{print $1}"
end

工作正常…

这是 docker images输出
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
coaxisopt_daemon latest 86bd3d602074 17 hours ago 830.7 MB
coaxisopt_daemon v1.0.13 86bd3d602074 17 hours ago 830.7 MB
docker.site.fr:5000/coaxis/coaxisopt_daemon latest 86bd3d602074 17 hours ago 830.7 MB
<none> <none> da0e5b0fc2a1 17 hours ago 830.7 MB
docker.site.fr:5000/coaxis/coaxisopt_daemon <none> 9c0175d7d397 18 hours ago 830.7 MB


这是我的预期输出:
$ docker-latest coaxis
coaxisopt_daemon latest 86bd3d602074 17 hours ago 830.7 MB
docker.akema.fr:5000/coaxis/coaxisopt_daemon latest 86bd3d602074 17 hours ago 830.7 MB

直到

但是,当我在字符串的末尾放置一些 /(斜杠)字符以过滤所推送的图像时:
$ docker-latest coaxis/
awk: cmd. line:1: /coaxis// && /latest/{print }
awk: cmd. line:1: ^ syntax error



如何转义 repo变量,以便在 awk模式中安全地使用它?

最佳答案


docker images | awk -v repo="$repo"  '$1 ~ repo && $2 == "latest" {print $1}'

详细信息:,诀窍是通过 $repo的变量 awk传递 repo并转义 $1

关于awk - 如何转义Fish shell变量以用作awk模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39366910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com