从数字列表中创建范围

Sil*_*sti 1 bash awk sed

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

28
57
87
116
145
176
204
233
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为带有名称的范围,基本上,每个范围对应于第一个数字,直到下一个数字-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
Run Code Online (Sandbox Code Playgroud)

关于如何做的任何想法?

anu*_*ava 5

你可以用这个awk:

awk 'p{printf "type, range%d=%d-%d\n", ++r, p, $1-1} {p=$1}' file
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)