linux - 在 bash 中对 "key/value pair"数组进行排序

标签 linux arrays bash sorting

如何对“python 字典式”数组进行排序 例如( "A: 2""B: 3""C: 1") 在 bash 中的值?我认为,此代码片段将使我的问题更加清楚。

State="Total 4 0 1 1 2 0 0"
W=$(echo $State | awk '{print $3}')
C=$(echo $State | awk '{print $4}')
U=$(echo $State | awk '{print $5}')
M=$(echo $State | awk '{print $6}')
WCUM=( "Owner: $W;" "Claimed: $C;" "Unclaimed: $U;" "Matched: $M" )
echo ${WCUM[@]}

这将简单地打印数组:Owner: 0;声称:1;无人认领:1;匹配:2

如何对数组(或输出)进行排序,消除任何具有“0”值的对,以便结果如下:

Matched: 2; Claimed: 1; Unclaimed: 1

在此先感谢您的帮助或建议。干杯!

最佳答案

快速而肮脏的想法是(这只是对输出进行排序,而不是对数组进行排序):

echo ${WCUM[@]} | sed -e 's/; /;\n/g' | awk -F: '!/ 0;?/ {print $0}' | sort -t: -k 2 -r | xargs

关于linux - 在 bash 中对 "key/value pair"数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764732/

相关文章:

linux - 有关远程主机标识更改的重定向警告

linux - 氮气--恢复到比例背景

linux - libpcap 可以重组 TCP 段吗

c - 使用 {} 进行数组初始化的未指定维度

ios - 将数组转换为 SwiftyJSON

linux - 如何在 Unix 中通过 find 命令将文件名添加到找到的文件的最后一行

c - 使用 C 来自动化命令行实用程序的选项有哪些?

arrays - json和空数组

linux - bash内置函数bash源代码

linux - 如何使用特定名称(日期月份名称)压缩特定目录