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] }