Code Files

searchfield.awk

Generated on Tue Dec 05 17:39:07 Eastern Standard Time 2006 from searchfield.awk


#   Program :   searchfield.awk
#   Purpose :   Extract all records containing "searchregexp"  in "fieldname"
#   Date    :   17 November 2006
#   Author  :   Bob Jonkman

#   Usage   :   gawk -f searchfield.awk -f library.awk -v SEARCH=searchregexp [-v FIELDNUM=x | -v FIELDNAME=fieldname] inputfile > outputfile


BEGIN           {   if (!SEARCH)
                    {
                        print("SEARCH criterion is empty; nothing to do!\n") > "/dev/stderr"  ;
                        print("#   Usage   :   gawk -f searchfield.awk -f library.awk -v SEARCH=searchregexp [-v FIELDNUM=x | -v FIELDNAME=fieldname] inputfile > outputfile\n") > "/dev/stderr" ;

                        exit(1) ;
                    }

}


!(NR % 1000)    {   print(NR) > "/dev/stderr" ;
}


$0 == "====="   {   nextfile ;
}

FNR == 1        {   numheaders = getheaders($0,headers) ;
                    print ;
    
                    if(FIELDNAME)
                        FIELDNUM = headers[FIELDNAME] ;

                    if(!FIELDNUM)
                        FIELDNUM = 1 ;

# print("##### DEBUG ##### FIELDNUM=" FIELDNUM " ; FIELDNAME=" FIELDNAME " ; SEARCH=" SEARCH) ;

}

FNR != 1        {   parsecsv($0,fields) ;
                    if(match(fields[FIELDNUM],SEARCH))
                    {    
                        print ;
                        total++ ;
                    }
}


END             {   print("=====") ;
                    print("Total," total) ;
}

# EOF: searchfield.awk

   

1 files processed.