目前,我有从命令数字的有序输出:
18,19,62,161,162,163,165
我想这些数字列表凝聚成单一的数字或数字范围的列表
18-19,62,161-163,165
我想过尝试通过在bash数组排序并读取下一个号码,看它是否是+1 ...我有一个PHP函数,基本上做同样的事情,但我有麻烦它转用于击:
foreach ($missing as $key => $tag) {
$next = $missing[$key+1];
if (!isset($first)) {
$first = $tag;
}
if($next != $tag + 1) {
if($first == $tag) {
echo '<tr><td>'.$tag.'</td></tr>';
} else {
echo '<tr><td>'.$first.'-'.$tag.'</td></tr>';
}
unset($first);
}
}
我想可能有一个一行在bash,可以做到这一点,但我的谷歌搜索短来了....
UPDATE:谢谢你@Karoly霍瓦特一个快速的答案,我用来完成我的项目。 我确实有兴趣在任何简单的解决方案在那里。