tommhii
Goto Top

Aus einer großen Log Datei bestimmte Zeilen auslesen und in einer Datei abspeichern

Ich möchte aus einer großen Datei betimmte Zeilen auslesen und in einer Datei speichern

Hallo,

hab hier noch einmal einen neue Frage. Ich möchte aus einer großen Log Datei nur bestimmte Zeilen auslesen und diese in einer Datei speichern.
Die Zeilen die ich brauche enthalten unter andern folgende Zeichenfolge U00035. Ich möchte also nur die Zeilen die diese Zeichenfolge enthalten.

z.B. so sieht eine Zeile aus die ich brauche es gibt davon mehrere Zeilen ,alle anderen werden nicht gebraucht
20120123/023924.216 - U00035 ' 10727' 'OTHERS '-Aufrufe benötigten '0:589.780.999' Sek.

die Ausgabe sollte so aussehen

10727' 'OTHERS '-Aufrufe benötigten '0:589.780.999' Sek

Wie kann man das in einer Batch verwirklichen.

Gruß Tommhi

Content-Key: 179368

Url: https://administrator.de/contentid/179368

Printed on: April 18, 2024 at 19:04 o'clock

Member: kn0rki
kn0rki Jan 23, 2012 at 11:24:41 (UTC)
Goto Top
Windows oder Linux?

Unter Linux wuerden dir "grep" und "cut" weiterhelfen.
Member: tommhii
tommhii Jan 23, 2012 at 12:07:04 (UTC)
Goto Top
Hallo,

brauch das unter Windows.
Member: pieh-ejdsch
pieh-ejdsch Jan 23, 2012 at 12:14:14 (UTC)
Goto Top
---
Member: Lochkartenstanzer
Lochkartenstanzer Jan 23, 2012 at 12:17:50 (UTC)
Goto Top
Zitat von @tommhii:
Hallo,

brauch das unter Windows.

Dann nimm einfach cygwin. Damit kannst Du das folgendermaßen hinschreiben:

grep U00035 "dateiname" | gawk -F "U00035" ' { print $2 } '
Member: tommhii
tommhii Jan 23, 2012 at 14:37:40 (UTC)
Goto Top
Hallo,

ich wollte das als DOS Batch laufen lassen ,da ich in dem Batch dann noch andere Sachen einbauen will. cygwin nützt mir nix.

aber Danke trotzdem

Gruß tommii
Member: bastla
bastla Jan 23, 2012 at 16:51:56 (UTC)
Goto Top
Hallo tommhii!

Grundsätzlich etwa so:
for /f "tokens=4*" %%i in ('findstr "U00035" "D:\Das.log"') do >"D:\Datei.txt" echo %%j
wobei in dieser Version die letzte vorkommende (Teil-)Zeile mit "U00035" gespeichert wird ...

Grüße
bastla
Member: tommhii
tommhii Jan 23, 2012 at 19:54:56 (UTC)
Goto Top
Danke Bastla,

für den Ansatz, ich brauche aber alle Zeilen, die in der log Datei vorkommen mit U00035.


Gruße
tommii
Member: bastla
bastla Jan 23, 2012 at 20:00:16 (UTC)
Goto Top
Hallo tommhii!

Das las sich zwar oben für mich etwas anders, aber dann eben so:
del "D:\Datei.txt"  
for /f "tokens=4*" %%i in ('findstr "U00035" "D:\Das.log"') do >>"D:\Datei.txt" echo %%j  
Den Unterschied zwischen ">" und ">>" muss ich ja vermutlich nicht erklären ... face-wink

Grüße
bastla
Member: Biber
Biber Jan 23, 2012 at 22:47:53 (UTC)
Goto Top
[OT] @bastla

Zitat von @bastla:
Den Unterschied zwischen ">" und ">>" muss ich ja vermutlich nicht erklären ... face-wink
Ich will mal so sagen...
  • tommhii ist fast drei Jahre hier im Forum und im Bereich "Batch & Shell" unterwegs
  • du hast ihm zum Thema "Wie ziehe ich alle Zeilen mit 'U00035' formatiert aus einer Plaintextdatei heraus?" einen FINDSTR, eine FOR/F-Anweisung und eine Immer-rein-in-D:\Datei.txt-Pipe in die Hand gedrückt.

Wenn da jetzt noch überhaupt eine Rückfrage oder gar eine zum Unterschied zwischen ">" und ">>" kommen sollte,
caramba, mir kocht der Blut!
dann werde ich GERNE eine passende Antwort geben.

Immer wieder beeindruckt von deiner schier unerschöpflichen Geduld
Biber.
[/OT]
Member: tommhii
tommhii Jan 24, 2012 at 06:30:15 (UTC)
Goto Top
Hallo,

sorry sicherlich ist meine Antwort falsch rübergekommen. Ich hatte ja nicht geschrieben das ich noch eine Erklärung brauch. Zitat von mir :Danke Bastla,

für den Ansatz


Danke nochmal Bastla für die schnelle Hilfe.


Natürlich dir auch Biber für die hilfreiche Einleitung face-smile. Ich wußte garnicht das man Geduld beeindruckt sein kann face-smile.

Grüße Tommi