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

RE: Re: awk script zum inkrementieren



Hallo Jan,
vielen, vielen Dank.
In Wirklichkeit läuft auch dein erstes Script, nur dass es die von
sessionize.pl erzeugte Session-Nr als $1 belässt. Ich kannte leider die -v
Option nicht und wusste nicht, wie ich die Startwerte als Parameter
definiere. Das gewünschte Format ergibt sich also mit Script 2 (wie unten,
aber statt \"VisitorID=%d; SessionID=%s\
\"VisitorID=%d; SessionID=%d\) und 
sort sess.log | tr -d '\r' | gawk -v visitor=10000 -v session=20000 -f
log.awk >cookie.log
entsprechend der Definition in WUMprep logfileFormats.txt:
Cookie
picasso.wiwi.hu-berlin.de - - [10/Dec/1999:23:06:31 +0200] "GET /index.html
HTTP/1.0" 200 3540 "http://www.berlin.de/"; "Mozilla/3.01 (Win95; I)"
"VisitorID=10001; SessionID=20001"
Also nochmal danke, du hast mir tagelanges Trial and Error ohne Ergebnis
erspart.
Gruß Gebhard

-----Original Message-----
From: Jan Trippler [mailto:Jan.Trippler@t-online.de] 
Sent: Wednesday, October 01, 2003 11:29 PM
To: Debian-User-German
Subject: Re: Re: awk script zum inkrementieren

Am Mittwoch, 1. Oktober 2003 13:59 schrieb Gebhard Dettmar:
[Beispiel-Datei]

Eins war mir noch nicht ganz klar, Du hast geschrieben, dass *die 
Session-ID aus den realen Sessions gebildet werden soll* - ich habe 
jetzt mal einfach angenommen, dass in der Session-ID der ursprüngliche 
Wert stehen soll und das Script entspr. geändert.

Das Script kannst Du auf 2 Wegen aufrufen:
als Shell-Script:
<log.sh>
sort session.log | tr -d '\r' | \
awk ' BEGIN { prev = ""; }
      $1 != prev { prev = $1; visitor ++; }
      { printf "%s \"VisitorID=%d; SessionID=%s\"\n",
               substr ($0, length($1) + 2), visitor, $1;}
    ' visitor=10000 >neues_log
</log.sh>

oder als awk-Script:
<log.awk>
BEGIN { prev = ""; }
      $1 != prev { prev = $1; visitor ++; }
      { printf "%s \"VisitorID=%d; SessionID=%s\"\n",
               substr ($0, length($1) + 2), visitor, $1;}
</log.awk>
dann aber mit folgender Syntax (eine Zeile):
sort session.log | tr -d '\r' | awk -v visitor=10000 -f log.awk 
>neues_log

Der tr mittendrin dient der Beseitigung des DOS-Zeilenendes (ich weiss 
nicht, ob die Originaldatei auch damit ankommt).

Jan


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an
debian-user-german-request@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org
(engl)



Reply to: