#!/usr/bin/awk -f function realtime (t) { sub(/:[0-9][0-9]?$/, ":&", t); s = (t ~ /:[0-9]$/) ? ".0" : "."; sub(/::/, s, t); split(t, artime, /:/); rt = 0; for (i in artime) rt = rt * 60 + artime[i]; return rt; } function printtime (rt) { f = sprintf("%.2f", rt); sub(/^.*\./, "", f); t = sprintf("%02d:%s", int(rt % 60), f); for (i=1; i<3; i++) { rt = int (rt / 60); temp = rt % 60; t = sprintf("%02d:%s", temp, t); } return t; } BEGIN { if ((ARGC < 3) || (ARGC > 4)) { printf "Usage: SubViewerSpread.awk [output]\n" \ >> "/dev/stderr"; printf " fact: factor close to 1\n" >> "/dev/stderr"; exit(-1); } output = (ARGC == 4) ? ARGV[3] : ""; if (output != "") printf "" > output; fact = ARGV[1]; ARGV[3] = ARGV[1] = ""; } # For dos and mac { sub(/\r/, "", $0); sub(/\f/, "", $0); } $1 == "{T" && $2 ~ /[0-9][0-9]:[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ { beg = realtime($2) * fact; $2 = printtime(beg); } { if (output == "") { printf "%s\n", $0; } else { printf "%s\n", $0 >> output; } }