#! /usr/bin/gawk -f # Last edited on 2003-11-03 19:53:04 by stolfi BEGIN { abort = -1; r = 0; g = 0; b = 0; n = 0; } (abort >= 0) { exit abort; } /^ *([#]|$)/ { next; } /(^|[=]) *[0-9]+[, ]+[0-9]+[, ]+[0-9]+([ ]+|$)/ { gsub(/^.*[=]/, "", $0); gsub(/[,]/, " ", $0); if (NF < 3) { data_error("bad format"); } r += $1; g += $2; b += $3; n++; next; } /./ { data_error("bad format"); } END{ if (abort >= 0) { exit abort; } printf "%3.f %3.f %3.f\n", r/n, g/n, b/n; } function data_error(msg) { printf "%d: **%s\n", FNR, msg > "/dev/stderr"; abort = 1; exit abort; } function arg_error(msg) { printf "**%s\n", msg > "/dev/stderr"; abort = 1; exit abort; }