1# 2# Extended Regular Expression 3 4# skip comments 5$0 ~ /^#/ { next; } 6 7# skip specifics to regcomp/regexec 8$2 ~ /[msnr$#p^]/ { next; } 9 10# jump empty lines 11$0 ~ /^$/ { next; } 12 13# subreg skip 14NF >= 5 { next; } 15 16# debug 17#{ printf ("<%s> <%s> <%s> <%s>\n", $1, $2, $3, $4); } 18 19# errors 20NF == 3 { 21# nuke any remaining '@' 22# gsub (/@/, ","); 23# it means empty lines 24 gsub (/\"\"/, ""); 25# escapes 26 gsub (/\\\'/, "\\\'\'"); 27# error in regex 28 if (index ($2, "C") != 0) 29 { 30 if (index ($2, "b") == 0) 31 printf ("2@%s@%s\n", $1, $3); 32 } 33# error not matching 34 else 35 { 36 if (index ($2, "b") == 0) 37 printf ("1@%s@%s\n", $1, $3); 38 } 39 next; 40} 41 42# ok 43NF == 4 { 44# skip those magic cookies can't rely on echo to gnerate them 45 if (match($3, /[NSTZ]/)) 46 next; 47 48# nuke any remaining '@' 49# gsub (/@/, ","); 50# it means empty lines 51 gsub (/\"\"/, ""); 52# escape escapes 53 gsub (/\\\'/, "\\\'\'"); 54 55 if (index ($2, "b") == 0) 56 { 57 printf ("0@%s@%s\n", $1, $3); 58 } 59 next; 60} 61