Re: awk script zum inkrementieren
Sorry Gebhard für die PM, ich hatte mich in der Mailadresse vertan.
Am Dienstag, 30. September 2003 16:09 schrieb Gebhard Dettmar:
[...]
> -> $1 wird zu $2, $1 ist nun die Sess.-Nr. Sortiert ist das ganze
> weiterhin
> nach Timestamps. Das habe ich nach Session Nr. sortiert in sort.log
> geschrieben und moechte jetzt ein awk-Script drueberlaufen lassen,
> das ans Zeilenende Session- und VisitorID setzt und in dem Fall, dass
> $1 ungleich $1 aus der vorausgehenden Zeile ist, Session- und
> VisitorID um 1 inkrementiert
> (a la
> '$1 != prev {print $0, $(NF+1)="SessionID=i++"} for i=10001 o.s.".),
> so dass
> jede Session eine je eigene Session-/VisitorID am Ende hat.
[...]
Ein paar Beispielzeilen wären sehr hilfreich gewesen. Ich denke mal, es
sieht so aus:
Session-ID IP irgendwas
0815 111.222.000.111 ...
und Du willst es so haben:
Session-ID IP irgendwas Dein_neues_Ende
0815 111.222.000.111 ... VisitorID=10001; SessionID=20001
und das ganze so, dass ein (mir unbekannter Startwert) der Session- und
Visitor-ID jedesmal inkrementiert wird, wenn sich Spalte 1 ändert.
Korrekt?
Das geht mit awk z. B. so (ungetestet):
awk ' BEGIN { prev = -1; }
$1 != prev { prev = $1; session ++; visitor ++; }
{ printf "%s VisitorID=%d; SessionID=%d\n", $0,session,visitor;}
' session=20001 visitor=10001 sort.log >neues_log
wobei die Werte 20001 und 10001 die Startwerte sind.
Jan
Reply to: