process.awk
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #!/usr/local/bin/gawk -f
  2. BEGIN {
  3. erriter = -1;
  4. }
  5. {
  6. iter = $1;
  7. if (iter == erriter) 
  8. next;
  9. s = "";
  10. i = 2;
  11. while (index($i,"-")) {
  12. s = sprintf("%s %s", s, $i);
  13. i++;
  14. }
  15. s = sprintf("%s %s %s %s", s, $i, $(i+1), $(i+2));
  16. i += 3;
  17. error = 0;
  18. for (j = i; j <= NF; j++) {
  19. if ($j == -1)
  20. error = 1;
  21. }
  22. if (!error) {
  23. for (j = i; j <= NF; j++) {
  24. sum[s,j-i+1] += $j;
  25. sum2[s,j-i+1] += ($j*$j);
  26. }
  27. count[s]++;
  28. }
  29. else 
  30. erriter = iter;
  31. numval = NF - i + 1;
  32. }
  33. END {
  34. for (s in count) {
  35. printf "%-45s ", s;
  36. for (j = 1; j <= numval; j++) {
  37. mean = sum[s,j]/count[s];
  38. var = sum2[s,j]/count[s] - mean*mean;
  39. printf "%6.2f %6.2f ", mean, sqrt(var/count[s]);
  40. }
  41. printf "n";
  42. }
  43. }