【发布时间】:2022-01-06 04:48:19
【问题描述】:
我已经在 bash 中声明了一个地图,如下所示
declare -A myMap
myMap=( [A:B:C:D]=813.0 [P:Q:R:S]=2346957.02 [W:X:Y:Z]=53831.93 [E:F:G:H]=113770.0)
我想在具有分隔符 (:) 的 Key 中拆分字符串,并像这样按值的降序获取输出
P - Q - R - S - 2346957.02
E - F - G - H - 113770.0
W - X - Y - Z - 53831.93
A - B - C - D - 813.0
我正在尝试的代码如下
for k in "${!myMap[@]}"
do
arrIN=(${k//:/ })
echo ${arrIN[0]} ' - ' ${arrIN[1]} ' - ' ${arrIN[2]} ' - ' ${arrIN[3]} ' - ' ${myMap["$k"]}
done | sort ${myMap["$k"]}
但是使用我的代码的输出是这样的
E - F - G - H - 113770.0
W - X - Y - Z - 53831.93
P - Q - R - S - 2346957.02
A - B - C - D - 813.0
有没有简单的方法来实现这一点?
【问题讨论】:
标签: bash sorting dictionary key-value