Ich brauche ein Protokoll in folgendem Format zu analysieren:Wie würde ich das folgende Protokoll analysieren?
===== Item 5483/14800 =====
This is the item title
Info: some note
===== Item 5483/14800 (Update 1/3) =====
This is the item title
Info: some other note
===== Item 5483/14800 (Update 2/3) =====
This is the item title
Info: some more notes
===== Item 5483/14800 (Update 3/3) =====
This is the item title
Info: some other note
Test finished. Result Foo. Time 12 secunds.
Stats: CPU 0.5 MEM 5.3
===== Item 5484/14800 =====
This is this items title
Info: some note
Test finished. Result Bar. Time 4 secunds.
Stats: CPU 0.9 MEM 4.7
===== Item 5485/14800 =====
This is the title of this item
Info: some note
Test finished. Result FooBar. Time 7 secunds.
Stats: CPU 2.5 MEM 2.8
Ich muss nur Titel jeder Punkt extrahieren (nächste Zeile nach ===== ===== Artikel 5484/14800) und das Ergebnis .
Also ich muss nur die Zeile mit dem Titel des Artikels und das Ergebnis für diesen Titel behalten und alles andere verwerfen.
Das Problem ist, dass manchmal ein Element Notizen (Max. 3) hat und manchmal das Ergebnis ohne zusätzliche Notizen angezeigt wird, so dass es schwierig ist.
Jede Hilfe wäre willkommen. Ich mache den Parser in Python, aber brauche nicht den eigentlichen Code, aber einige zeigen, wie könnte ich das erreichen?
LE: Das Ergebnis, denn ich bin auf der Suche ist alles andere und sich zu verwerfen, so etwas wie:
('This is the item title','Foo')
then
('This is this items title','Bar')
Es wäre sehr hilfreich, die genaue Ausgabe zu sehen, die Sie sehen möchten. etwas wie [('Artikel 5483/14800', '12') ...]? – Triptych
grep -A1 -E "^ === |^Test" $ LOGFILE | grep -B2 "Test beendet" | grep -v - - | sed -e '$! N; s/\ n//' -e "s/Test abgeschlossen. \ ([^.] * \) \ .. * /, \ 1 /" VERWENDUNG von GNU grep 2.2 Dies ist der Titel des Artikels, Ergebnis Foo Dies ist der Titel dieses Artikels, Ergebnisbalken Dies ist der Titel dieses Artikels, Ergebnis FooB –
Warum nicht grep verwenden? –