#!/usr/bin/gawk -f function max(i, j) { return (i >= j ? i : j); } # max() BEGIN { days[1] = 0; days[2] = days[1] + 31; days[3] = days[2] + 28; days[4] = days[3] + 31; days[5] = days[4] + 30; days[6] = days[5] + 31; days[7] = days[6] + 30; days[8] = days[7] + 31; days[9] = days[8] + 31; days[10] = days[9] + 30; days[11] = days[10] + 31; days[12] = days[11] + 30; } # BEGIN { day = ($1 - 2003) * 365; day += days[int($2)]; day += $3; week = int(day / 7); count = max(1, int($5 / 50)); if ($4 == "beermann") { beermann[week] += count; } else if ($4 == "helge") { helge[week] += count; } else if ($4 == "oe") { oe[week] += count; } else { other[week] += count; } # else } END { sort = "/bin/sort -t, -g"; for (i in beermann) { # printf("%d %03d (beermann)\n", i, beermann[i]) | sort; total[i] += beermann[i]; } # for for (i in helge) { # printf("%d %03d (helge)\n", i, helge[i]) | sort; total[i] += helge[i]; } # for for (i in oe) { # printf("%d %03d (oe)\n", i, oe[i]) | sort; total[i] += oe[i]; } # for for (i in other) { # printf("%d %03d (other)\n", i, other[i]) | sort; total[i] += other[i]; } # for printf(" \\plot\n"); for (i in total) { # printf("%d %03d (total)\n", i, total[i]) | sort; # printf("%d,%d,%d,%d,%d,%d\n", # i, total[i], beermann[i], helge[i], oe[i], other[i]) | sort; printf("%10d%10d\n", i, total[i]) | sort; } # for close(sort); printf(" /\n\n"); printf(" \\plot\n"); for (i in total) { printf("%10d%10d\n", i, beermann[i]) | sort; } # for close(sort); printf(" /\n\n"); printf(" \\plot\n"); for (i in total) { printf("%10d%10d\n", i, helge[i]) | sort; } # for close(sort); printf(" /\n\n"); printf(" \\plot\n"); for (i in total) { printf("%10d%10d\n", i, oe[i]) | sort; } # for close(sort); printf(" /\n\n"); printf(" \\plot\n"); for (i in total) { printf("%10d%10d\n", i, other[i]) | sort; } # for close(sort); printf(" /\n\n"); }