2015-07-13 69 views
1

如何從下面顯示的輸出明智地提取數據並對每個日期進行平均計算。最後一列是平均值。提取數據明智日期並進行平均計算

Sun Jul 5 00:00:02 IST 2015, 97 
Sun Jul 5 00:02:01 IST 2015, 97 
Sun Jul 5 00:04:02 IST 2015, 97 
Mon Jul 6 00:00:01 IST 2015, 73 
Mon Jul 6 00:02:02 IST 2015, 93 
Mon Jul 6 00:04:02 IST 2015, 97 
Tue Jul 7 00:00:02 IST 2015, 97 
Tue Jul 7 00:02:02 IST 2015, 97 
Tue Jul 7 00:04:01 IST 2015, 97 
Wed Jul 8 00:00:01 IST 2015, 98 
Wed Jul 8 00:02:02 IST 2015, 98 
Wed Jul 8 00:04:01 IST 2015, 98 
Thu Jul 9 00:00:02 IST 2015, 100 
Thu Jul 9 00:02:01 IST 2015, 100 
Thu Jul 9 00:04:01 IST 2015, 100 
Fri Jul 10 00:00:01 IST 2015, 100 
Fri Jul 10 00:02:02 IST 2015, 100 
Fri Jul 10 00:04:02 IST 2015, 100 
Sat Jul 11 00:00:01 IST 2015, 73 
Sat Jul 11 00:02:01 IST 2015, 73 
Sat Jul 11 00:04:02 IST 2015, 73 

想爲

Jun 6 - 97 
Jun 7 - 86.66 
... 

回答

0

輸出您可以使用此AWK:

awk -F ', ' '{ 
    split($1, a, " "); 
    k=a[2] OFS a[3]; 
    if(!(k in c)) 
     b[++n]=k; 
    c[k]++; 
    sum[k]+=$2 
} 
END{ 
    for(i=1; i<=n; i++) 
     printf "%s - %.2f\n", b[i], (sum[b[i]]/c[b[i]]) 
}' file 
Jul 5 - 97.00 
Jul 6 - 87.67 
Jul 7 - 97.00 
Jul 8 - 98.00 
Jul 9 - 100.00 
Jul 10 - 100.00 
Jul 11 - 73.00 
+1

感謝工程完全按照我想要的 – user3742796

+0

另一個查詢,如何得到給定日期之間的平均? 例如7月5日至6月11日之間的平均值是多少? – user3742796

+0

對於跨月或跨越幾個月的情況,計算日期將會非常棘手。我建議創建一個新的問題,因爲對於給定的輸入,日期計算並不容易。 – anubhava