#! /bin/sh awk 'BEGIN{ m[1] = "January"; m[2] = "February"; m[3] = "March" m[4] = "April"; m[5] = "May"; m[6] = "June" m[7] = "July"; m[8] = "August"; m[9] = "September" m[10] = "October"; m[11] = "November"; m[12]= "December" } (0!=length($0)){ b = $0 while ("*"==substr(b,1,1)) b = substr(b,2) nb = split(b,xb) name = xb[1] d1 = 0 for (ib=2;ib<=nb;ib++) { if (("0"<=substr(xb[ib],1,1)) && ("9">=substr(xb[ib],1,1))) { d1 = ib break } name = name " " xb[ib] } if (0==d1) { print "? " $0 | "cat 1>&2" next } if (3!=split(xb[ib],dx,"/")) { print "? " $0 | "cat 1>&2" next } sd = m[dx[1]] " " dx[2] ", 20" dx[3] sdw = xb[d1+1] if ( ("("!=substr(sdw,1,1)) || (")"!=substr(sdw,length(sdw),1)) ) { print "? " $0 | "cat 1>&2" next } if ( "through" != xb[d1+2] ) { printf "%s\t%s\t%s\n",name,sd,sd next } if (3!=split(xb[d1+3],ex,"/")) { print "? " $0 | "cat 1>&2" next } ed = m[ex[1]] " " ex[2] ", 20" ex[3] edw = xb[d1+4] if ( ("("!=substr(edw,1,1)) || (")"!=substr(edw,length(edw),1)) ) { print "? " $0 | "cat 1>&2" next } printf "%s\t%s\t%s\n",name,sd,ed '} acadin.txt >acadout.txt tr '\012' '\015' macacadout.txt