diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-05-07 08:18:41 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-05-07 08:18:41 +0200 |
| commit | 1c283a21a955e8ccb4ac98118bfa5f50535e6765 (patch) | |
| tree | 6958befc34dc35f0da022bb8c87bad2e176ea8dc /parser.awk | |
| parent | 0ba773d913450f88ff7bcf54a39e0c8a8c4d7d64 (diff) | |
Enable extended mode and add log parser
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 |
