Ich habe ein Server-Zugriffsprotokoll, mit Zeitstempeln jeder HTTP-Anfrage, möchte ich eine Anzahl der Anzahl der Anfragen pro Sekunde erhalten. Mit sed
und cut -c
, bisher habe ich es geschafft, die Datei auf nur die Zeitstempel zu schneiden, wie zum Beispiel:Count Anzahl der Vorkommen von Token in einer Datei
22-September-2008 20:00:21 +0000
22-Sep-2008 20:00:22 +0000
22-Sep-2008 20:00:22 +0000
22-Sep-2008 20:00:22 +0000
22-Sep-2008 20.00.24 0.000
22-Sep-2008 20:00:24 +0000
Was würde ich gerne bekommen, ist die n Umbrella Zeiten erscheint jeder eindeutige Zeitstempel in der Datei. Zum Beispiel mit dem obigen Beispiel würde Ich mag Ausgabe erhalten, die wie folgt aussieht:
22-Sep-2008 20.00.21 0.000: 1
22-Sep-2008 20.00 Uhr: 22 +0000: 3
22-Sep-2008 20.00.24 0.000: 2
I sort -u
benutzt habe die Liste der Zeitstempel auf eine Liste von eindeutigen Token zu filtern, könnte die Hoffnung, dass ich Verwenden Sie grep wie
grep -c -f <file containing patterns> <file>
, aber dies erzeugt nur eine einzige Linie von einer Gesamtsumme von übereinstimmenden Linien.
Ich weiß, dass dies in einer einzigen Zeile getan werden kann, ein paar Dienstprogramme aneinanderreihen ... aber ich kann nicht darüber nachdenken. Weiß jemand?
Beachten Sie, dass Sie bei anderen Datensätzen möglicherweise (1) vor uniq (1) sortieren müssen, da uniq nur group adj ace duplicates. –
Ja, aber die OPs haben bereits gesagt, dass er die Dinge sortiert hat, also nahm ich an, dass er oben drauf war ... –
Ich musste 'uniq -c' auf OS X benutzen,' --count' gab mir einen Fehler. –