KornShell整数数组sorting

KornShell(ksh脚本中是否有命令对整数数组进行sorting? 在这个特定的情况下,我感兴趣的是简单而不是效率。 例如,如果variables$ UNSORTED_ARR包含值“100911,111228,090822”,我想将结果存储在$ SORTED_ARR

它实际上是一个索引数组或列表中的字符串?

阵:

UNSORTED_ARR=(100911 111228 090822) SORTED_ARR=($(printf "%s\n" ${UNSORTED_ARR[@]} | sort -n)) 

串:

 UNSORTED_ARR="100911, 111228, 090822" SORTED_ARR=$(IFS=, printf "%s\n" ${UNSORTED_ARR[@]} | sort -n | sed ':a;$s/\n/,/g;N;ba') 

还有其他几种方法可以做到这一点,但原理是一样的。

这是使用不同技术的字符串的另一种方法:

 set -s -- ${UNSORTED_ARR//,} SORTED_ARR=$@ SORTED_ARR=${SORTED_ARR// /, } 

请注意,这是一个词典排序,所以当数字没有前导零时,你会看到这样的事情:

 $ set -s -- 10 2 1 100 20 $ echo $@ 1 10 100 2 20 

如果我拿出来,那么它的工作原理,但我不能循环通过它(因为它的字符串列表现在) – pws5068 11年3月4日在21:01

做这个:

 \# create sorted array set **-s** -A $@