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
Reply to: