cat wetter.werte
13.05.2013 10:16 8,9 984,1 92,5
13.05.2013 10:17 7,5 985,3 92,6
13.05.2013 10:18 6,3 947,7 94,6
13.05.2013 10:19 9,4 832,5 95,5
tail -n70 wetter.werte | \
head -n20 | \
sed 's/,/\./g' | \
awk '
function abs(x){
return ((x < 0.0) ? -x : x)
}
{
temperature[NR]=$3;
sum_temperature+=$3;
pressure[NR]=$4;
sum_pressure+=$4;
humidity[NR]=$5;
sum_humidity+=$5
}
END{
avg_temperature=sum_temperature/NR;
last_temperature=temperature[NR];
variance_temperature=abs(avg_pressure-last_pressure);
avg_pressure=sum_pressure/NR;
last_pressure=pressure[NR];
variance_pressure=abs(avg_pressure-last_pressure);
avg_humidity=sum_humidity/NR;
last_humidity=humidity[NR];
variance_humidity=abs(avg_humidity-last_humidity);
if (variance_temperature<0.5)
trend_temperature="→";
else if (avg_temperature>last_temperature)
trend_temperature="↓";
else if (avg_temperature<last_temperature)
trend_temperature="↑";
else
trend_temperature="→";
if (variance_pressure<1.0)
trend_pressure="→";
else if (avg_pressure>last_pressure)
trend_pressure="↓";
else if (avg_pressure<last_pressure)
trend_pressure="↑";
else
trend_pressure="→";
if (variance_humidity<1.0)
trend_humidity="→";
else if (avg_humidity>last_humidity)
trend_humidity="↓";
else if (avg_humidity<last_humidity)
trend_humidity="↑";
else
trend_humidity="→";
print "Temperature AVG (1h): " avg_temperature " Trend: " trend_temperature " (" last_temperature-avg_temperature ")" "\nPressure AVG (1h): " avg_pressure " Trend: " trend_pressure " (" last_pressure-avg_pressure ")" "\nHumidity (1h): " avg_humidity " Trend: " trend_humidity " (" last_humidity-avg_humidity ")"
}' | \
sed '/[0-9]\./s/\./,/g'