Code Files

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.