#! /usr/bin/gawk -f # Last edited on 2011-04-05 23:26:57 by stolfilocal BEGIN \ { USAGE = ( "reformat-nisa-html.gawk -v rnum=NN -v rtime=HH:MM < IN.html > OUT.sh" ); abort = -1; if (rnum !~ /^[0-9]+$/) { arg_error("missing or invalid \"rnum\""); } if (rtime !~/^[0-9][0-9]?[:][0-9][0-9]/) { arg_error("missing of invalid \"rtime\""); } } (abort >= 0) \ { exit abort; } //\ { # Remove TABs: gsub(/[\011]/, " "); # Remove non-info: gsub(/^[ ]*
  • <[\/]a><[\/]li>/, ""); gsub(/[.]pdf">[ ]*/, ".pdf@@"); gsub(/[ ]*\(PDF[^()]*[^()][0-9,]*[A-Z]B\)/, ""); gsub(/[ ]+/, "_") gsub(/[@][@]/, " "); # Discard blank lines: if ($0 ~ /^[ ]*$/) { next; } # Grab info fields: fn = $1; # File name tt = $2; # Title if (fn !~ /^201[0-9][01][0-9][0-3][0-9][0-9][0-9][0-9][-][0-9]+[.]pdf$/) { data_error("bad format"); } # Grab date: yr = substr(fn, 1, 4); # Year. mo = substr(fn, 5, 2); # Month. dy = substr(fn, 7, 2); # Day of month. pk = substr(fn, 9, 3); # Docpack number. su = substr(fn, 12); # Document number in docpack, plus file extension. # Guess parent dir: dr = ( yr mo dy pk ); # Print fetch line: printf \ "mesubsnarf \"%s/%s/%s/%s\" \"%s REL-%s-A\" \"%s-%s-%s-%s\" \"jp%s%s%s-%s%s\"\n", \ yr, mo, dr, fn, tt, rnum, \ yr, mo, dy, rtime, \ yr, mo, dy, pk, su; } function data_error(msg) { printf "line %d: %s\n", FNR, msg > "/dev/stderr"; abort = 1; exit abort; } function arg_error(msg) { printf "** %s\n", msg > "/dev/stderr"; printf "usage: %s\n", usage > "/dev/stderr"; abort = 1; exit abort; }