Você pode começar com o registro de data e hora dos dados à medida que você os recebe em um arquivo de log:
awk '{print strftime("%Y.%m.%d.%H%M%S ") $0}' </tty/USB0 >>logfile
Você pode escolher um formato que seja fácil de analisar. Claro, os dados podem já ter um registro de data e hora. O texto acima fornece linhas com data e hora de início fixo, por exemplo:
2015.07.07.093953
Em um script, você pode examinar os dados e extrair as entradas que lhe interessam. Por exemplo para média / max nas últimas 24 horas use em seu script de shell:
start=$(date --date="-1 days" +"%Y.%m.%d.%H%M%S")
Isso obtém o carimbo de data e hora por 24 horas no mesmo formato. Você pode, então, obter o máximo e a média:
awk -v start="$start" <logfile '
$1>=start { if($7>max7)max7 = $7
tot21 += $21+0
numdone++
}
END { printf "max %g, ave %g\n",max7,tot21/numdone }
'
Observe que há um campo extra no início da linha e você precisa de $ 7 agora para o campo $ 6. Ao escolher um formato de data de largura fixa com o primeiro ano e os últimos segundos, podemos fazer uma comparação de cadeia simples entre as datas.