Codon Geschrieben 20. Mai 2003 Teilen Geschrieben 20. Mai 2003 Hallo ihr Unix Profis, ich will eine LOG Datei die mein Programm schreibt auslesen lassen. Das Problem ist das ich mit grep (oder gibt es da was besseres?) einen Block auslenen will. Beispiel dum di dum dum di dum <Start> bla bla bla bla bla bla <Ende> dum di dum dum di dum Ich möchte mit grep also nur von Ende bis Start die Zeilen ausgelsen bekommen? Irgend jemand eine Idee ? Gruß Codon Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
P3AC3MAK3R Geschrieben 20. Mai 2003 Teilen Geschrieben 20. Mai 2003 Ich würde den auszuwertenden Block zuerst in eine temporäre Datei kopieren und dann den grep darauf anwenden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Codon Geschrieben 20. Mai 2003 Autor Teilen Geschrieben 20. Mai 2003 Den Block will ich ja im Endeffekt genau kopieren. Aber die Datei ist 18 MB groß und mit grep will ich genau diese Blöcke finden. Gruß Codon Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beko Geschrieben 20. Mai 2003 Teilen Geschrieben 20. Mai 2003 grep "bla bla" dein.log > grepausgabe.txt Damit sucht dir grep alle Zeilen raus die "bla bla" enthalten und schreibt sie in eine Datei namens grepausgabe.txt hinein. Mit ">> grepausgabe.txt" hängst du an eine eventuell vorhandene txt die neuen Zeilen an, andernfalls wird die Datei einfach überschrieben. Edit: lässt du den letzten Teil weg gibt er dir alles auf der Konsole aus. War es das was du gesucht hast? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Codon Geschrieben 20. Mai 2003 Autor Teilen Geschrieben 20. Mai 2003 Ok. Ich glaube ich habe mein Problem blöde beschrieben. Hier nochmal ein anderes Beispiel ((((((PYFE_TERMIN = ?) AND (BEFO_CODE_AB = ?)) AND (BEFO_CODE_AN = ?)) AND (BFIK_BEF_KLASSIFIK = ?)) AND (POSK_INT_EXT_KZ = ?)) AND (BMSG_NR = ?)) AND (BFSM_CODE = ?)) AND (TECH_UPDTZEIT = ?)) bind => [2003-05-20 13:58:15.0, 2003-05-20 13:58:15.0, 2003-11-13, LXR, BRU, ECO, I, 5958613.0, 449, 2003-05-20 13:57:30.0] UnitOfWork(1241948614)--Connection(1814618619)--UPDATE NUR.VBMKO001 SET TECH_UPDT_ZEIT_DLG = ?, TECH_UPDTZEIT = ? WHERE ((((((((PYFE_TERMIN = ?) AND (BEFO_CODE_AB = ?)) AND (BEFO_CODE_AN = ?)) AND (BFIK_BEF_KLASSIFIK = ?)) AND (POSK_INT_EXT_KZ = ?)) AND (BMSG_NR = ?)) AND (BFSM_CODE = ?)) AND (TECH_UPDTZEIT = ?)) <Start> Das sind die Sachen die ich gerne in einem anderen Log hätte. Die Anzahl der Zeilen ist verschieden <Ende> bind => [2003-05-20 13:58:15.0, 2003-05-20 13:58:15.0, 2003-11-13, LXR, BRU, ECO, I, 5958613.0, 448, 2003-05-20 13:57:30.0] UnitOfWork(1241948614)--Connection(1814618619)--UPDATE NUR.VBMKO001 SET TECH_UPDT_ZEIT_DLG = ?, TECH_UPDTZEIT = ? WHERE ((((((((PYFE_TERMIN = ?) AND (BEFO_CODE_AB = ?)) AND (BEFO_CODE_AN = ?)) AND (BFIK_BEF_KLASSIFIK = ?)) AND (POSK_INT_EXT_KZ = ?)) AND (BMSG_NR = ?)) AND (BFSM_CODE = ?)) AND (TECH_UPDTZEIT = ?)) In das andere File will ich per grep also: <Start> Das sind die Sachen die ich gerne in einem anderen Log hätte. Die Anzahl der Zeilen variert <Ende> kopieren. Danke für eure Hilfe. Gruß Codon Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
nic_power Geschrieben 20. Mai 2003 Teilen Geschrieben 20. Mai 2003 Hallo, Grep ist dafür das falsche Tool, nimm sed: sed -n '/<Start>/,/<Ende>/{p}' Nic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Codon Geschrieben 21. Mai 2003 Autor Teilen Geschrieben 21. Mai 2003 @ nic_power Tausend Dank du hast mir sehr weiter geholfen . Nun läuft alles so wie es soll. Gruß Codon Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.