# qso-stats.awk # 年月別交信局数集計スクリプト(html出力版) by JQ1UKK/1 # # 04-JAN-2004 初版 # 08-JAN-2004 バンド判別方法変更 # 19-JAN-2004 年別集計表を10年毎表示に変更 # 08-FEB-2004 ちょっと派手目にしてみました(Coloring by JH0RNN) # 06-NOV-2005 HAMLOG VER5 対応(改造 by JA8NNT/1) BEGIN { FIELDWIDTHS = "22 2 1 2 27 7 3" # $2:year # $4:month # $6:band # $7:mode num_band = split("1.9 3.5 7 10 14 18 21 24 28 50 144 430 1200 2400 5600 etc TOTAL", bandlist, " ") yearmin = 2050 yearmax = 1950 } { year = $2 += 0 month = $4 += 0 band = $6 #year2桁→4桁変換 if (year < 50) {year = 2000 + year} else {year = 1900 + year} #バンド判別 if (band ~ /.*\/\.*/) {bandid = 16} else if (band ~ /^1\..*/) {bandid = 1} else if (band ~ /^3\..*/) {bandid = 2} else if (band ~ /^7.*/) {bandid = 3} else if (band ~ /^10.*/) {bandid = 4} else if (band ~ /^14[^45].*/) {bandid = 5} else if (band ~ /^18.*/) {bandid = 6} else if (band ~ /^21.*/) {bandid = 7} else if (band ~ /^24[^0-9].*/) {bandid = 8} else if (band ~ /^2[89].*/) {bandid = 9} else if (band ~ /^5[0-5].*/) {bandid = 10} else if (band ~ /^14[45].*/) {bandid = 11} else if (band ~ /^43.*/) {bandid = 12} else if (band ~ /^12.*/) {bandid = 13} else if (band ~ /^24[0-9].*/) {bandid = 14} else if (band ~ /^5[6-9].*/) {bandid = 15} else bandid=16 #集計 count[year, month, bandid]++ count[year, month, num_band]++ count[year, 13, bandid]++ count[year, 13, num_band]++ count[bandid]++ count[num_band]++ if(year <= yearmin) {yearmin = year} if(year >= yearmax) {yearmax = year} } END { printf "QSO statistics\n" printf "\n\n" printf "

年月別交信局数集計表

\n\n" #年別バンド別交信局数表出力 printf "

年別

\n\n" yearmin0 = yearmin sub(/.$/, "0", yearmin0) yearmax0 = yearmax sub(/.$/, "0", yearmax0) for(year1 = yearmax0; year1 >= yearmin0; year1-=10) { printf "\n" printf "
Band" for(year = year1; year < year1+10; year++) { printf "%d",year } if(year >= yearmax) { printf "TOTAL\n" } else { printf "\n" } for(bandid = 1; bandid <= num_band; bandid++) { printf "
%s", bandlist[bandid] for(year = year1; year < year1+10; year++) { printf "%s
", count[year, 13, bandid]"" } if(year >= yearmax) { printf "
%s
\n", count[bandid]"" } else { printf "\n" } } printf "

\n" } printf "

\n" #年別月別バンド別交信局数集計表出力 for(year = yearmax; year >= yearmin; year--) { printf "

%d年

\n", year printf "\n" printf "
BandJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECTOTAL\n" for(bandid = 1; bandid <= num_band; bandid++) { printf "
%s", bandlist[bandid] for(month = 1; month <= 12; month++) { printf "%s
", count[year, month, bandid]"" } printf "
%s
\n", count[year, 13, bandid""] } printf "
\n\n" } printf "\n" }