The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM



View Single Post in UNIX Forums - Click on the Thread or Permalink to View Entire Thread -->
  #5 (permalink)  
Old 05-05-2008
swamymns swamymns is offline
Registered User
 

Join Date: Sep 2005
Posts: 25
Hi Guys, thanks for your reply,

awk ' /^= name*/,/^= job*/ { indx += 1; arr[indx]=$0; } \
/^= code : 10/ { match_found_10="YES"; } \
/^= code : 15/ { match_found_15="YES"; }\
/^= job*/ {if(match_found_10=="YES") { \
print "======================" >"code_10_match_file"; \
for(i=1; i<=indx; i++) \
print arr[i] >"code_10_match_file"; \
print "======================" >"code_10_match_file";\
}\
if(match_found_15=="YES") { \
print "======================" >"code_15_match_file"; \
for(i=1; i<=indx; i++) \
print arr[i] >"code_15_match_file"; \
print "======================" >"code_15_match_file";\
}\
match_found_10="NO"; indx = 0; match_found_15="NO"; }\
' input_file_name

above script is ok, but I need this for generic case, i.e., I need to cluster the records having similar "code" into individual files,

for example,
all the records having code=10 need to be stored in a file called code_10 file and
all the records having code=15 need to be stored in a file called code_15 file ...etc.

the code number varied from 0 to 255.
and if the code is 0 then we can ignore those recors.

and if input file contains codes 0,10,15,20, then the script should generate only 3 files(for 10, 15,20) ignoring 0.

Please help me

Thanks in advance
swamymns
Reply With Quote