loosely-coupled-dss/parser.awk
2021-05-07 08:18:41 +02:00

48 lines
No EOL
884 B
Awk
Executable file

#!/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)
}