N
nico-e
Grünschnabel
Hallo,
ich versuche mit Hilfe von Shell-Commands ein Logfile zu filtern, welches wie folgt aussieht..
das Ergebnis soll die den namen (Letzte spalte) die Summe der Zeit (spalte 8 bei zeilen mit SignOff) und spalte 7 bei Zeilen mit SignOn
meine aktueller versuch sieht so aus giebt aber nur die zeit in Stunden und die ClientID (spalte 3)aus
Gibt es eine Möglichkeit innerhalb AWK die ID(name) durch die Ausgabe von "grep * name(also die Client ID die AWK kennt)| grep SignOn | tail -1 | zerschneiden nach Spalte 7 und spalte name(alles was am ende der spalte in "Anführungstrichen" steht incl. Leerzeichen)" zu ersetzen
ich versuche mit Hilfe von Shell-Commands ein Logfile zu filtern, welches wie folgt aussieht..
Code:
07/05/2008 12:31:40 {ID123} {ID123} SignOff <IP-addresse> 1 0 "terminated due to comm error"
07/05/2008 12:31:40 {ID123} {ID123} Stats 94
07/05/2008 12:32:14 {GID222} {Z123} SignOff <IP-addresse> 1 2747 "logged off"
07/05/2008 12:32:14 {GID333} {Z32} Stats 93
07/05/2008 12:32:27 {GID213} {Z32} NameChg ".bdaââri."->"bûdsâkiô."
07/05/2008 12:33:09 {ID123} {ID123} requirePUID Non-Java login
07/05/2008 12:33:09 {} {ZN123P} SignOn <IP-addresse> "400666" "32Bit Windows" ".bla blubb I bla."
07/05/2008 12:33:13 {ID123} {ID123} requirePUID Non-Java login
07/05/2008 12:33:13 {} {ZH123H} SignOn <IP-addresse> "903 2" "32Bit Windows" "b l a b."
das Ergebnis soll die den namen (Letzte spalte) die Summe der Zeit (spalte 8 bei zeilen mit SignOff) und spalte 7 bei Zeilen mit SignOn
meine aktueller versuch sieht so aus giebt aber nur die zeit in Stunden und die ClientID (spalte 3)aus
Code:
h$grep -r "SignOff" pserver*.log | grep "\{Z" |cut -d " " -f 3,8 | grep -v "{}" | awk '{zeit[$1]+=$2} END{for (name in zeit) print zeit[name]/60/60, name }' | sort -n
Gibt es eine Möglichkeit innerhalb AWK die ID(name) durch die Ausgabe von "grep * name(also die Client ID die AWK kennt)| grep SignOn | tail -1 | zerschneiden nach Spalte 7 und spalte name(alles was am ende der spalte in "Anführungstrichen" steht incl. Leerzeichen)" zu ersetzen