用awk计算一组值的平均值


   
  00:10:01 0.45
  
00:20:01 0.42
00:30:01 0.40
00:40:01 0.43
00:50:01 0.41
01:00:01 0.41
01:10:01 0.44
01:20:01 0.39
01:30:01 0.44
01:40:01 0.42
01:50:01 0.37
02:00:01 0.44
02:10:01 0.43
02:20:01 0.39
02:30:01 0.43
02:40:01 0.43
02:50:01 0.44
03:00:01 0.42
03:10:01 0.42
03:20:01 0.45
03:30:01 0.43
03:40:01 0.44
03:50:01 0.41
04:00:01 0.39
04:10:01 0.43
04:20:01 0.41
04:30:01 0.40

第一列是时间,第二列是数据,求每次从10分到下一小时0分的第二列的平均值

比如
从00:10:01 到 01:00:01(含) 的第二列的平均值
一直到
最后的
从04:10:01 到 04:30:01(含) 的第二列的平均值

shell

火村真知子 12 years, 11 months ago

$ awk '{if(!c++)s=$1;t+=$2}/:00:/{print s"-"$1,t/c;t=c=0}END{if(c)print s"-"$1,t/c}' avg.txt
00:10:01-01:00:01 0.42
01:10:01-02:00:01 0.416667
02:10:01-03:00:01 0.423333
03:10:01-04:00:01 0.423333
04:10:01-04:30:01 0.413333

Moryel answered 12 years, 11 months ago

Your Answer