我有一个包含1617b,1516a之类的元素的数组。我希望以降序回显元素 - 这意味着具有最大数字字符的元素,如果相同则具有更大字母的元素。有关如何做到这一点的任何想法?一个简单的“如果”工作吗?如:
if [[ ${array[$j]}>${array[$j+1]} ]]; then
.
.
.
提前预订
答案 0 :(得分:0)
这是一种方式
$ ar=(1234a 2345b 1234c 4444d)
$ sorted=$(printf "%s\n" ${ar[@]} | sort | xargs)
$ echo $sorted
1234a 1234c 2345b 4444d
按降序将-r
标记添加到sort
如果您希望排序值返回数组
$ sorted_ar=($(printf "%s\n" ${ar[@]} | sort))
$ echo ${sorted_ar[@]}