如何在Bash中对排序的整数数组进行分组

时间:2013-07-18 15:56:44

标签: bash

在bash中我有一个排序整数数组,如:

array[0]=1
array[1]=2
array[2]=3
array[3]=4
array[4]=7
array[5]=9
array[6]=10
array[7]=13
array[8]=15
array[9]=16

我想获得如下输出:

  

1-4,7,9-10,13,15-16

有一种简单快捷的方法吗?

1 个答案:

答案 0 :(得分:1)

我不知道有任何标准的方法,但编写自己的函数不应该那么难。有些东西:

  • 将第一个数组元素'value'保存为'low'
  • 迭代数组并将当前'index'保存为'high'
  • 当数组'value'与'index'不同时,打印'low-high'如果不是'low == high',则打印'low'
  • 将'low'和'index'重置为当前'value'并继续
  • 将'index'增加一个

对于预先排序的非空整数数组,应该足够简单:)

(对不起格式化问题,我目前使用的是带有PC键盘的Mac,而且我的相处并不好。)