使用 jq 按长度对数组中的字符串进行排序
Sort strings in array by length using jq
我正在通过 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"
]
您可以对数组中字符串的长度执行 sort_by
并反转顺序以保持最长的字符串在前。移除 reverse
函数以保持最短的字符串在前
sort_by(length) | reverse
我正在通过 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"
]
您可以对数组中字符串的长度执行 sort_by
并反转顺序以保持最长的字符串在前。移除 reverse
函数以保持最短的字符串在前
sort_by(length) | reverse