def number = /\W+(\d+)/ def eintraege = [] new File('weather.dat').text.eachMatch(/(?m)^${number * 3}.*/){ all, tag, max, min -> def spread = max.toInteger() - min.toInteger() eintraege << [tag:tag, spread:spread, min:min, max:max] } eintraege .sort{ it.spread } .each{ println it.collect{ def label = format(it.key) def wert = it.value.toString().padLeft(3) "$label:$wert " }.join() } def format(label) { label[0].toUpperCase() + label[1..-1] }