AWK logfileauswertung mit variablen

ux2

ux2

Grendel Kleinbell
Ich habe eine Frage zu "FS" innerhalb zu AWK.

Aufgabe ist es anhand von "Regeln" ein Logfile auszuwerten. Zuerst sollen Variablen gefüllt werden die durch weitere Funktionen Aktionen durchführen.
Ziel des ganzen ist Logfiles so auszuwerten das "bekannte Meldungen" unsichtbar sind und unbekannte sichtbar werden.

Als Trennzeichen hatte ich ursprünglich den Doppelpunkt verwedet, welcher jedoch auch in dem Pattern vorkommt welches in eine Variable geschrieben werden soll.

Problem hierbei ist jetzt das vorhandene Leerzeichen im Pattern (Feld6)jeweils eine neue Variable füllen. Der Text aus Feld6 soll als Ganzes in in eine Variable gefuellt werden.

Feld1: 009;
Feld2: 1;
Feld3: class1;
Feld4 :E;
Feld5: ERROR;
Feld6: com.security.Permission regelVerschiebenPermission


Datei1:
Code:
009;1;class1;E;ERROR;com.security.Permission regelVerschiebenPermission
010;1;class1;E;ERROR;com.security.Permission regelAnlegenPermission
011;1;class1;E;ERROR;com.security.Permission regelLoeschenPermission
012;1;class1;E;ERROR;com.security.Permission regelInhaltAendernPermission
013;1;class1;E;CRITICAL;unexpected Exception: Framework Error (14): No event found in request

For Schleife:
Code:
[server]$ for i in $(cat $F02 | grep $FCLASS | awk -F\; '{if ($2~/1/) printf  "%s%c%s%c%s%c%s%c%s\n",$1,58,$3,58,$4,58,$5,58,$6}'); do 
F03=$i ; echo $F03; done

Ausgabe:
Code:
009:class1:E:ERROR:com.security.Permission
regelVerschiebenPermission
010:class1:E:ERROR:com.security.Permission
regelAnlegenPermission
011:class1:E:ERROR:com.security.Permission
regelLoeschenPermission
012:class1:E:ERROR:com.security.Permission
regelInhaltAendernPermission
013:class1:E:CRITICAL:unexpected
Exception:
Framework
Error
(14):
No
event
found
in
request
 
Dies ist kein Problem des FS von awk, sondern der for-Schleife. Diese splittet die Ausgabe an den Leerzeichen. Besser geeignet ist folgendes Konstrukt:

Code:
[~]$ cat $F02 | grep $FCLASS | awk -F\; '{if ($2~/1/) printf "%s%c%s%c%s%c%s%c%s\n",$1,58,$3,58,$4,58,$5,58,$6}' | while read i; do echo $i; done
009:class1:E:ERROR:com.security.Permission regelVerschiebenPermission
010:class1:E:ERROR:com.security.Permission regelAnlegenPermission
011:class1:E:ERROR:com.security.Permission regelLoeschenPermission
012:class1:E:ERROR:com.security.Permission regelInhaltAendernPermission
013:class1:E:CRITICAL:unexpected Exception: Framework Error (14): No event found in request

Gruss, Xanti
 

Ähnliche Themen

AWK Tip gesucht

Festplatte stirbt, dd funktioniert nicht

NagiosGrapher 1.7.1 funktioniert nicht

dovecot und postfix Konfiguration Problem

Prozess aus eigenem Init script wird gekillt

Zurück
Oben