510
d4shoerncheN
easy-rider
goscho
jadefalke
michi1983
MrTrebron
Rob1982

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

Mitglied: tommhii
23.01.2012
12:10:29 Uhr
630 Aufrufe
10 Antworten
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

Mitglied: kn0rki
kn0rki schreibt am 23.01.2012 um 12:24:41 Uhr
Windows oder Linux?

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

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

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


Gruße
tommii
Mitglied: bastla
bastla schreibt am 23.01.2012 um 21:00:16 Uhr
Hallo tommhii!

Das las sich zwar oben für mich etwas anders, aber dann eben so:
01.
del "D:\Datei.txt" 
02.
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
Mitglied: Biber
Biber schreibt am 23.01.2012 um 23:47:53 Uhr
[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]
Mitglied: tommhii
tommhii schreibt am 24.01.2012 um 07:30:15 Uhr
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
mehr ...Ähnliche Beiträge