Weiß nicht, ob ich als Macianer hier richtig bin, aber ich glaube mal schon
Ich nutze Mac OS X 10.3.4 (basiert auf den Darwin - Kernel von BSD) und bin mit der Programmierung nicht so wirklich bewandert ...
Ich stehe vor dem Problem, dass ich eine Textdatei (Mac - spezifische Logdatei) überarbeitet haben möchte. Das Problem: die Datei hat ne Größe vonknapp 2 GB, also fällt ne Bearbeitung von Hand schon mal flach.
Das Mac - spezifische Zeilenende in ein Unix - Zeilenende umzuwandeln war (tr sei Dank) kein Problem, aber für die folgende Bearbeitung reichen Shell - Befehle meines Wissens nach nicht aus.
Das File entspricht in Etwa dem CLF (common log format), welches auch Apache liefert.
Der Aufbau wäre dann in Etwa
Code: Select all
ip - - [datum] - "aktion url"
Die URL signalisiert eine Datenbankabfrage über FileMaker ... Ein Eintrag sieht etwa so aus:
Code: Select all
127.0.0.1 - - [01/Jan/2004 12:34:56] - "GET http://server/FMPro?autor=ich&titel=dieser&id=12345&native=true&layout=&dies=das&soweiter=&sofort=;"
Ich würde jetzt gerne die URL dahingehend beschnitten haben, dass ledig http://server/FMPro?id=12345 übrig bleibt, IP, Datum und Aktion sollen erhalten bleiben.
Allerdings können sämtliche Variablen Einträge unterschiedlicher Länge haben, weshalb die genaue Angabe der Position der zu entfernenden Strings sowie die wörtliche Angabe der zu entfernenden Strings nicht möglich ist.
Hätte jemand eine Idee, wie sich das realisieren läßt?
Oder kann man vielleicht auch irgendwie mittels grep definieren, das nicht passende Strings angegeben und per tr entfernt werden?
Ist es überhaupt möglich, in grep mit dem wildcard ? zu arbeiten?
Und wenn ja, wie?
(kommt mir jetzt bitte nicht mit rtfm, Ihrtfmmtt und über wildcards steht da nüscht hilfreiches)
Ach so, die ID ist immer 5stellig.
Schon mal vielen Dank für eure Mühen