bash:如何比较字符串与字母和字母?

时间:2017-11-13 20:32:04

标签: string bash compare

我有一个包含1617b,1516a之类的元素的数组。我希望以降序回显元素 - 这意味着具有最大数字字符的元素,如果相同则具有更大字母的元素。有关如何做到这一点的任何想法?一个简单的“如果”工作吗?如:

if [[ ${array[$j]}>${array[$j+1]} ]]; then
     .
     .
     .

提前预订

1 个答案:

答案 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[@]}