@Myr4ik

Как объединить последовательные числа в диапазоны?

Здравствуйте!
Подскажите, пожалуйста, с помощью чего и как можно объединить последовательность чисел

1
2
3
4
5
9
12
13
14

в диапазоны

1-5,9,12-14?

Желательно сделать это в CLI FreeBSD.
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
hint000
@hint000
у админа три руки
для вас и для собственной разминки написал такой однострочник:
awk 'BEGIN{f=0;}{c=$0;if(f==0){f=1;b=c;a=b};if(c-b>1){if(a==b)print a",";else print a"-"b",";a=c;}b=c;next}END{b=c;if(a==b)print a;else print a"-"b;}' | xargs echo

если скормить ему ваши числа (вот как у вас, по одному числу в строке), то выводит:
1-5, 9, 12-14
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы