56 lines
912 B
Awk
56 lines
912 B
Awk
#
|
|
# Basic Regular Expression
|
|
|
|
# kip comments
|
|
$0 ~ /^#/ { next; }
|
|
|
|
# skip those option specific to regexec/regcomp
|
|
$2 ~ /[msnr$#p^]/ { next; }
|
|
|
|
# skip empty lines
|
|
$0 ~ /^$/ { next; }
|
|
|
|
# debug
|
|
#{ printf ("<%s> <%s> <%s> <%s>\n", $1, $2, $3, $4); }
|
|
|
|
# subreg expresion
|
|
NF >= 5 { next; }
|
|
|
|
# errors
|
|
NF == 3 {
|
|
# gsub (/@/, ",");
|
|
# it means empty lines
|
|
gsub (/\"\"/, "");
|
|
# escapes
|
|
gsub (/\\\'/, "\\\'\'");
|
|
# error in regex
|
|
if (index ($2, "C") != 0)
|
|
{
|
|
if (index ($2, "b") != 0)
|
|
printf ("2@%s@%s\n", $1, $3);
|
|
}
|
|
# erro no match
|
|
else
|
|
{
|
|
if (index ($2, "b") != 0)
|
|
printf ("1@%s@%s\n", $1, $3);
|
|
}
|
|
next;
|
|
}
|
|
|
|
# ok
|
|
NF == 4 {
|
|
# skip those magic cookies can't rely on echo to gnerate them
|
|
if (match($3, /[NSTZ]/))
|
|
next;
|
|
|
|
# gsub (/@/, ",");
|
|
# it means empty lines
|
|
gsub (/\"\"/, "");
|
|
# escape escapes
|
|
gsub (/\\\'/, "\\\'\'");
|
|
|
|
if (index ($2, "b") != 0)
|
|
printf ("0@%s@%s\n", $1, $3);
|
|
}
|