今天碰到一个时间差批量计算的问题,弄好后就写下来,方便积累和分享。
部分数据(一共有40多W条,gmail.csv)如上图所示,已经做过二次处理和排版。
第i行前两列时间记作A[i],后两列记作B[i],需要计算平均延迟∑(A[i]-B[i]) /I,以及最大延迟Max(A[i]-B[i])
平均值:
[root[root@test01 test]# awk -F '[ :-]' '{a=strftime("%s",mktime($1" "$2" "$3" "$4" "$5" "$6));b=strftime("%s",mktime($7" "$8" "$9" "$10" "$11" "$12));c=a-b;sum+=c}END{print sum/NR}' gmail.csv
最大值:
[root@test01 test]#awk -F '[ :-]' '{a=strftime("%s",mktime($1" "$2" "$3" "$4" "$5" "$6));b=strftime("%s",mktime($7" "$8" "$