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

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: