Alla Awk-ohjelmalla toimiva QSO-datakonvertteri TR:n lokiformaatista ehdotettuun Cabrillo-QSO-dataformaattiin Joulukilpailun ja K.S. Sainion osalta.
ESIMERKKI TR-LOKISTA (log.dat) 80CW 26-Dec-02 11:01 1 OH6QU 599 599 682 glögi 10 80CW 26-Dec-02 11:02 2 OH6GDX 599 599 682 dxhai 10 80SSB 26-Dec-02 11:02 3 OH3O 59 59 300 rytty 10 40CW 26-Dec-02 11:03 4 OH7I 599 599 700 röppö 10
Komentorivi on muotoa:
gawk -f joulu.awk mycall mymsg myohc mylog missä mycall = kilpailussa käytetty kutsumerkki mymsg = ensimmäisessä QSO:ssa annettu viisikirjaiminen kiertosana myohc = kilpailussa annettu kuntanumero mylog = TR-lokin nimi
Tehdään muunnos seuraavalla komentorivillä:
gawk -f joulu.awk oh6bg tuuli 682 log.dat
Ja tulokseksi saadaan seuraavaa Cabrillo-muotoista QSO-dataa:
MUUNNOKSEN JÄLKEINEN LOKI QSO: 3500 CW 2002-12-26 1101 OH6BG 599 682 TUULI OH6QU 599 682 GLöGI QSO: 3500 CW 2002-12-26 1102 OH6BG 599 682 GLöGI OH6GDX 599 682 DXHAI QSO: 3500 PH 2002-12-26 1102 OH6BG 59 682 DXHAI OH3O 59 300 RYTTY QSO: 7000 CW 2002-12-26 1103 OH6BG 599 682 RYTTY OH7I 599 700 RöPPö
Alla muunnosskripti. Käyttö käyttäjän omalla vastuulla.
# joulu.awk # # Quick-n-dirty TR to Joulukilpailu and K.S. Sainio # Cabrillo QSO data converter # # by Jari Perkiömäki OH6BG, [email protected], 5 January 2003 # # Usage: gawk -f joulu.awk mycall mymsg myohc mylog # e.g. gawk -f joulu.awk oh6bg vaasa 682 log.dat # BEGIN { # checking command line if (ARGC > 4) { CALL = ARGV[1] W = ARGV[2] O = ARGV[3] FILE = ARGV[4] delete ARGV[1] delete ARGV[2] delete ARGV[3] } else { print "Usage: gawk -f joulu.awk mycall mymsg myohc mylog" exit 1 } w = " " toupper(W) } { # processing time from XX:YY to XXYY gsub(/:/,"") $3 = " " $3 # processing date: reorganising d = substr($2,1,2) m = substr($2,4,3) y = substr($2,8) if (m == "Jan") m = "01" if (m == "Feb") m = "02" if (m == "Mar") m = "03" if (m == "Apr") m = "04" if (m == "May") m = "05" if (m == "Jun") m = "06" if (m == "Jul") m = "07" if (m == "Aug") m = "08" if (m == "Sep") m = "09" if (m == "Oct") m = "10" if (m == "Nov") m = "11" if (m == "Dec") m = "12" $2 = " " "20" y "-" m "-" d # processing right lengths for the callsigns u = substr(" ",length($5)) m = substr(" ",length(CALL)) ucall = " " toupper($5) u " " mycall = " " toupper(CALL) m " " # translating bands to frequencies band = substr($1,1,2) mode = substr($1,3) if (band == 80) { band = 3500 } if (band == 40) { band = 7000 } if (mode == "SSB") { mode = "PH"} band = " " band mode = " " mode # processing signal report if (length($6) == 2) { $6 = $6 " " } if (length($7) == 2) { $7 = $7 " " } # processing county numbers $4 = " " O $8 = " " $8 # msg received $9 = " " toupper($9) # print QSO lines print "QSO:" band mode $2 $3 mycall $6 $4 w ucall $7 $8 $9 # assign last msg received to our next msg sent w = $9 }