#! /usr/bin/gawk -f # Last edited on 2003-04-16 10:34:58 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 "<%5.3f, %5.3f, %5.3f>\n", r/n/255, g/n/255, b/n/255; } 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; }