[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: