Wie kann ich aus einer Datei mehrere Zählungen generieren, ohne sie mehrmals neu zu lesen?

Joe Fruchey

Ich habe große Dateien mit HTTP-Zugriffsprotokollen und versuche, Stundenzählungen für eine bestimmte Abfragezeichenfolge zu generieren. Natürlich ist die richtige Lösung, alles in Splunk oder Graylog oder so etwas zu werfen, aber ich kann das alles im Moment nicht für diesen einmaligen Deal einrichten.

Das schnelle und schmutzige ist:

for hour in 0{0..9} {10..23}
do
  grep $QUERY $FILE | egrep -c "^\S* $hour:"
  # or, alternately
  # egrep -c "^\S* $hour:.*$QUERY" $FILE
  # not sure which one's better
done

Aber diese Dateien haben durchschnittlich 15 bis 20 Millionen Zeilen, und ich möchte wirklich nicht jede Datei 24 Mal analysieren. Es wäre weitaus effizienter, die Datei zu analysieren und jede Instanz $hourauf einmal zu zählen. Gibt es eine Möglichkeit, dies zu erreichen?

joanis

Sie können grep bitten, den passenden Teil jeder Zeile mit auszugeben -ound dann uniq -cdie Ergebnisse zu zählen:

grep "$QUERY" "$FILE" | grep -o "^\S* [0-2][0-9]:" | sed 's/^\S* //' | uniq -c

Der sedBefehl dient dazu, nur die zweistellige Stunde und den Doppelpunkt beizubehalten, die Sie bei Bedarf auch mit einem anderen sed-Ausdruck entfernen können.

Vorsichtsmaßnahmen: Diese Lösung funktioniert mit GNU grep und GNU sed und erzeugt stundenlang keine Ausgabe anstelle von "0" ohne Protokolleinträge. Ein großes Lob an @EdMorton für den Hinweis auf diese Probleme in den Kommentaren und andere Probleme, die in der obigen Antwort behoben wurden.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Wie kann ich aufhören, aus einer Datei zu lesen?

Wie kann ich serialisierte Objekte aus einer JSON-Datei lesen, ohne File.ReadAllLines zu verwenden? C#

Ist es möglich, eine aus einer FXML-Datei geladene Komponente mehrmals hinzuzufügen, ohne sie erneut zu lesen?

Wie kann ich in Python mehrere JSON-Werte aus einer Datei / einem Stream träge lesen?

Wie kann ich mehrere JSON-Werte aus einer Datei / einem Stream in Rust träge lesen?

Lesen Sie aus einer neu erstellten Datei

Wie erhalte ich einen Wert aus einer Methode in der Klasse, ohne sie neu zu berechnen?

(Java) Wie kann ich einen Raum überspringen, wenn aus einer Datei zu lesen?

Wie kann ich Daten aus einer Excel-Datei lesen, um zu flattern?

Wie lade ich eine Matrix aus einer Datei, ohne ihre Größe zu kennen und ohne mehrfaches Lesen?

Wie kann ich eine Datei öffnen, lesen, schließen, aktualisieren, erneut öffnen und lesen, ohne sie in PHP zu aktualisieren?

Wie verwende ich struct, um aus einer Datei zu lesen?

Wie kann ich kurz vor EOF aus einer Datei lesen und sie in einen String einfügen?

Wie kann ich Zeilen aus einer Live-Datei lesen?

Wie kann ich Daten aus einer Datei lesen und tokenisieren?

Wie kann ich Zahlen aus einer Datei lesen?

Wie kann ich mehrere URLs durchlaufen, um in Scrapy aus einer CSV-Datei zu kratzen?

Holen Sie sich Daten aus einer Datei, ohne sie mehrmals zu durchlaufen

Wie kann ich mehrere Instanzen einer Klasse erstellen, ohne sie zu definieren?

Wie kann ich den AST einer TypeScript-Datei (wie jscodeshift) analysieren, ändern und neu generieren?

Git - Wie kann ich eine Datei meines Repos ignorieren, ohne sie aus dem Repository zu entfernen?

Wie lösche ich die erste Zeile aus einer gzip-Datei, ohne sie zu dekomprimieren?

Wie kann ich eine Zip-Datei generieren, ohne sie mit Java auf der Festplatte zu speichern?

ExtJS 4.2.2 - Kann ich eine importierte JSON-Datei aus einem Dateifeld lesen, ohne sie an eine URL zu senden?

Wie kann ich Spaltenwerte mit dem Inhalt einer Datei aktualisieren, ohne sie zu interpretieren?

Wie kann ich Bytes aus einer sehr schweren Datei lesen? Speichern Sie sie dann in einem String, z. B. .pdf .zip .xlsx-Dateien

Lesen Sie eine Binärdatei aus einer Zip-Datei aus C #, ohne sie zu entpacken

Kann ich mehrere Funktionen aus einer .py-Datei aufrufen, ohne jede einzeln importieren zu müssen?

Wie kann ich eine HTML-Seite (in einer Webansicht) von Javafx aus bearbeiten, ohne die Seite neu zu laden?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv