从数字列表创建范围

时间:2018-07-16 20:09:12

标签: bash awk sed

我有一个这样的数字列表:

28
57
87
116
145
176
204
233

我需要将其转换为带有名称的范围,并且基本上每个范围对应于第一个数字,直到下一个数字-1。像这样:

type, range1=28-56
type, range2=57-86
type, range3=87-115
type, range4=116-144
type, range5=145-175
type, range6=176-203
type, range7=204-232

有关如何操作的任何想法?

1 个答案:

答案 0 :(得分:5)

您可以使用此awk

awk 'p{printf "type, range%d=%d-%d\n", ++r, p, $1-1} {p=$1}' file

type, range1=28-56
type, range2=57-86
type, range3=87-115
type, range4=116-144
type, range5=145-175
type, range6=176-203
type, range7=204-232