nameslot.awk
Generated on Tue Dec 05 17:39:06 Eastern Standard Time 2006 from nameslot.awk
# Program: NAMESLOT.AWK
# Purpose: Parse through USER.CSV (from GWCONV) counting surnames
# Date : 25 October 2002
# Author : Bob Jonkman <bjonkman@sobac.com>
# Copyright 2008 Bob Jonkman and/or SOBAC Microcomputer Services
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Input format: Domain, Postoffice, ObjectID, Surname, Firstname...
# Modified : 2005-01-13 - Output sorted list
# : 2005-02-08 - Added "Unique" and "Total" and "Length"
BEGIN { FS = ","
OFS = ","
SUBSEP = ","
IGNORECASE = 1
}
!(NR % 1000) { print(NR) > "/dev/stderr" # Provide a visual counter
}
NR !=1 { parsecsv($0, record)
if (!surnamelist[record[4]]) unique++ ; # Count unique names
surnamelist[record[4]]++ ; # Count this name
total++ ; # Count all names
}
# end of scanning
# Post-process: print headers, totals, and the timeslot array
END { print("Frequency,Surname,Length");
for (i in surnamelist)
{
printf("%8i,%s,%i\n", surnamelist[i],printcsv(i),length(i)) | "sort /R" ;
}
print("=====") ;
print(total ",Total");
print(unique ",Unique");
}
# EOF: NAMESLOT.AWK
1 files processed.