diff options
Diffstat (limited to 'parser.awk')
| -rwxr-xr-x | parser.awk | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/parser.awk b/parser.awk new file mode 100755 index 0000000..d1e4289 --- /dev/null +++ b/parser.awk @@ -0,0 +1,48 @@ +#!/usr/bin/awk -f + +BEGIN { + RS=" " + CSV_HEADER="" + CSV_DATA="" +} + +/LOG2PARSE/{ + # First extract what we need + to_parse=$1 + gsub(/\[LOG2PARSE\]\(/,"",to_parse) + gsub(/\)/,"",to_parse) + split(to_parse,tokens,"|") + + # Check if we have to build the csv header + if(CSV_HEADER==""){ + for(i = 1; i<length(tokens);i++){ + split(tokens[i],h,":") + if(CSV_HEADER=="") + CSV_HEADER=h[1] + else + CSV_HEADER=CSV_HEADER","h[1] + } + } + + # Build a row + row="" + for(i = 1; i<length(tokens);i++){ + split(tokens[i],h,":") + if(row=="") + row=h[2] + else + row=row","h[2] + } + + # Add the row to the csv data + if(CSV_DATA=="") + CSV_DATA=row + else + CSV_DATA=CSV_DATA"\n"row +} + + +END { + print(CSV_HEADER); + print(CSV_DATA) +}
\ No newline at end of file |
