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-ID: 179368

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

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

kn0rki
kn0rki 23.01.2012 um 12:24:41 Uhr
Goto Top
Windows oder Linux?

Unter Linux wuerden dir "grep" und "cut" weiterhelfen.
tommhii
tommhii 23.01.2012 um 13:07:04 Uhr
Goto Top
Hallo,

brauch das unter Windows.
pieh-ejdsch
pieh-ejdsch 23.01.2012 um 13:14:14 Uhr
Goto Top
---
Lochkartenstanzer
Lochkartenstanzer 23.01.2012 um 13:17:50 Uhr
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 } '
tommhii
tommhii 23.01.2012 um 15:37:40 Uhr
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
bastla
bastla 23.01.2012 um 17:51:56 Uhr
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
tommhii
tommhii 23.01.2012 um 20:54:56 Uhr
Goto Top
Danke Bastla,

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


Gruße
tommii
bastla
bastla 23.01.2012 um 21:00:16 Uhr
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
Biber
Biber 23.01.2012 um 23:47:53 Uhr
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]
tommhii
tommhii 24.01.2012 um 07:30:15 Uhr
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