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.