1#!/sw/bin/gawk -f
2#
3# Compute average and standard deviation for a list of values.
4
5BEGIN{
6   i=0;
7}
8
9{
10   if($0!="")
11   {
12      array[i++] = $0;
13   }
14   else
15   {
16      print("Ignoring empty line");
17   }
18}
19
20
21
22END{
23   total = i;
24   sum = 0;
25   for(i=0; i<total; i++)
26   {
27      sum+=array[i];
28   }
29   avg = sum/total;
30
31   var = 0;
32   for(i=0; i<total; i++)
33   {
34      var += (array[i]-avg)*(array[i]-avg);
35   }
36   var = var/(total-1);
37   dev = sqrt(var);
38
39   printf("Sum over %4d elements: %f\n", total, sum);
40   printf("Average               : %f +/- %f\n", avg, dev);
41}
42