Docker 使用jq按长度对数组中的字符串排序

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 cli从GCP获取所有docker标签的列表

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命令输出的代表性片段,可能会有更好的解决方案。这很简单!我不知道您可以按每个值的长度进行排序。谢谢你,伊尼安