Docker 使用jq按长度对数组中的字符串排序
我正在通过gcloud cli从GCP获取所有docker标签的列表Docker 使用jq按长度对数组中的字符串排序,docker,tags,jq,gcloud,Docker,Tags,Jq,Gcloud,我正在通过gcloud cli从GCP获取所有docker标签的列表 gcloud container images list-tags gcr.io/my_image --format=json | jq -S .[].tags 输出: [ "build.160", "ed37ba0ea1f31d62ff48ef817addd30c8be9952c" ] [ "5cd7190a96f633cfb8b5fa0f876f147dbe7
gcloud container images list-tags gcr.io/my_image --format=json | jq -S .[].tags
输出:
[
"build.160",
"ed37ba0ea1f31d62ff48ef817addd30c8be9952c"
]
[
"5cd7190a96f633cfb8b5fa0f876f147dbe700dad",
"build.161"
]
[
"9a9f030fcf7544565b9ebf8ba37330b649e156ba",
"build.159"
]
是否有方法对值进行排序以保持一致性?这样,它可以看起来像这样:
[
"ed37ba0ea1f31d62ff48ef817addd30c8be9952c",
"build.160"
]
[
"5cd7190a96f633cfb8b5fa0f876f147dbe700dad",
"build.161"
]
[
"9a9f030fcf7544565b9ebf8ba37330b649e156ba",
"build.159"
]
您可以对数组中字符串的长度执行
排序,\u,并颠倒顺序,首先保留最长的字符串。删除reverse
功能,首先保留最短的字符串
sort_by(length) | reverse
你能在jq中粘贴原始JSON而不使用-S吗?嘿@Inian的输出与使用或不使用-S是相同的。此外,也可能出现3-4个标签的情况。我只是想确保他们遵守一些命令。我猜从docker/GCP的角度来看,这取决于哪个docker标签被推到了第一个位置/last@jrow-如果在应用jq筛选器之前显示gcloud命令输出的代表性片段,可能会有更好的解决方案。这很简单!我不知道您可以按每个值的长度进行排序。谢谢你,伊尼安