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

RE: Re: awk script zum inkrementieren; angehängt: beispielSessionized.zip



> ich habe den Eindruck, dass meine Mails nicht in der Liste ankommen, 
> deshalb forwarde ich sie ausnahmsweise mal.
Meine auch nicht; habe auf den ersten Versuch, meine Anfrage zu verschicken,
sogar eine Antwort von meinem Mailer-Daemon (den ich im ersten Moment für
eine Swen-Mail hielt) gekriegt:
----- Transcript of session follows -----
... while talking to murphy.debian.org.:
>>> RCPT To:<debian-user-german@lists.debian.org>
<<< 550 <debian-user-german@lists.debian.org>: User unknown
550 <debian-user-german@lists.debian.org>... User unknown
--
Der 2. Anlauf klappte dann.
--
> Ein paar Beispielzeilen wären sehr hilfreich gewesen.
Allerdings, sorry. Hab ein paar angehängt. Du hast das das aber ganz richtig
erschlossen.
Leider kriege ich widersprüchliche Fehlermeldungen:
gawk: awk.txt:4:      session=20001 visitor=10001
gawk: awk.txt:4:                           ^ syntax error
Häh? Ich rufe über gawk -f auf, hab das Script im Beispiellog nochmal unten
drangehängt.
Also vielen Dank erstmal und Gruß
Gebhard

-----Original Message-----
From: Jan Trippler [mailto:Jan.Trippler@t-online.de] 
Sent: Tuesday, September 30, 2003 9:23 PM
To: Gebhard Dettmar
Subject: Fwd: Re: awk script zum inkrementieren
Importance: High

Hallo Gebhard,

ich habe den Eindruck, dass meine Mails nicht in der Liste ankommen, 
deshalb forwarde ich sie ausnahmsweise mal.

Gruß
Jan

----------  Weitergeleitete Nachricht  ----------

Subject: Re: awk script zum inkrementieren
Date: Tue, 30 Sep 2003 20:31:36 +0200
From: Jan Trippler <Jan.Trippler@t-online.de>
To: debian-user-german@debian.org

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

-------------------------------------------------------

Attachment: beispielSessionized.zip
Description: Binary data


Reply to: