aboutsummaryrefslogtreecommitdiff
path: root/parser.awk
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2021-05-07 08:18:41 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2021-05-07 08:18:41 +0200
commit1c283a21a955e8ccb4ac98118bfa5f50535e6765 (patch)
tree6958befc34dc35f0da022bb8c87bad2e176ea8dc /parser.awk
parent0ba773d913450f88ff7bcf54a39e0c8a8c4d7d64 (diff)
Enable extended mode and add log parser
Diffstat (limited to 'parser.awk')
-rwxr-xr-xparser.awk48
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