$ awk '{match($2,/([^0-9]+)(.*)/,a);b[$1][a[1]][a[2]]=a[2]}END{for(i in b){printf i":\t";for(j=0;j++<asorti(b[i],c);){for(k=0;k++<asort(b[i][c[j]],d);)t=t?d[k]-d[k-1]==1?t"-"c[j]d[k]:t","c[j]d[k]:c[j]d[k];s=s?s","t:t;t=""}gsub(/-[^,]+-[^0-9]+/,"-",s);print s;s=""}}' i