#!/usr/bin/nawk -f # convert data like this (order doesn't matter except 0 at front) # 0 # C Canada # P Ontario # T Palgrave # A R R # 1 # O Consultant # I Ian F. Darwin # M ian@darwinsys.com # U http://www.darwinsys.com # N Author of lots of kool stuff. # into HTML to make nice neat tables. $1 == "0" { if (FNR != 1) dump(); reset(); next; } $1 == "C" { country = substr($0, 2); if (country != oldCountry) { print "" country "" } oldCountry = country next } $1 == "P" { prov = substr($0, 2); next } $1 == "T" { city = substr($0, 2); next } $1 == "A" { addr = substr($0, 2); next } $1 == "O" { org = substr($0, 2); next } $1 == "I" { indv = substr($0, 2); next } $1 == "B" { phone = substr($0, 2); next } $1 == "F" { fax = substr($0, 2); next } $1 == "M" { email = substr($0, 2); next } $1 == "U" { url = substr($0, 2); next } $1 == "N" { note = substr($0, 2); next } # left over - must be part of note? { note = note "\n" $0 next } function dump() { print "" indv "
" org "
" addr print " " city "
" prov print " " phone "
" fax print " " print "" email "" print "
" print "" url "" print " " note } function reset() { prov = "" city = "" addr = "" org = "" indv = "" email = "" phone = "" fax = "" url = "" note = "" } END { dump(); # don't forget the last guy! }