aboutsummaryrefslogtreecommitdiff
path: root/parser.awk
blob: d1e42894dcf5cc0ec66aea8c25c1d718817aee97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)
}