Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zeilen in .txt Löschen die einen String enthalten

Frage Entwicklung Batch & Shell

Mitglied: axi1992

axi1992 (Level 1) - Jetzt verbinden

01.04.2013 um 13:53 Uhr, 2709 Aufrufe, 5 Kommentare, 1 Danke

Ich möchte Logdatein durchsuchen nur haben die ca. 10 Mio. Zeilen.
Nun Möchte ich manche Zeilen die z.B.: "[debug]" oder "**" enthalten aus der Log Datei entfernen und wenn möglich in eine neue Datei speichern.

Ich habe zwar schon ansätze gefunden nur funktioniert das bei mir leider gar nicht.



@echo on & setlocal
set "Pfad=D:\Downloads"
set "Suche=[debug]"

for /f "delims=" %%i in ('findstr /m /b "%Suche%" "%Pfad%\slog0.txt"') do (
type "%%i">%temp%\all.txt
findstr /b /v "%Suche%" "%temp%\all.txt">%temp%\No#.txt && move %temp%\No#.txt "%%i"
)
del "%temp%\all.txt"
del "%temp%\No#.txt"



Das habe ich ausprobiert, funktioniert leider nicht. Muss auch sagen verstehe den Code leider nicht.
Mitglied: Endoro
01.04.2013 um 14:42 Uhr
Hallo axi1992,

was hälst du davon:
01.
<slog0.txt> newlog.txt findstr /v /l "[debug] **" 
02.
<slog0.txt> exlog.txt findstr /l "[debug] **"
bb
Bitte warten ..
Mitglied: axi1992
01.04.2013 um 14:49 Uhr
Super danke fürs erste:

Leider funktioniert es hier nicht
Zeilen Beispiel:
[01/18/13,16:57:28] [command] [ID: 41] [Name]: /back


<slog0.txt> exlog.txt findstr /l "/back"
Damit bleibt die Datei leer?
Bitte warten ..
Mitglied: rubberman
01.04.2013, aktualisiert um 16:22 Uhr
Hallo axi1992, willkommen im Forum.

Der Slash möchte durch einen Backslash maskiert werden.
findstr /l "\/back"
Warum? Frag mich nicht. Darüber habe ich mir schon mehrfach den Kopf zerbrochen.

Grüße
rubberman
Bitte warten ..
Mitglied: Endoro
01.04.2013, aktualisiert um 20:10 Uhr
Hier "denkt" findstr, die Option "/b" (Zeilenanfang) sei gewählt & meckert über die unbekannten Optionen /a, /c & /k. Kann mit der Option /c: umgangen werden oder so:
01.
<slog0.txt> exlog.txt findstr /l " /back"
Hier werden (natürlich) auch Zeilen gefunden, wo kein <space> vor "/back" steht. Warum die double quotes den slash nicht escapen: kA. Aber findstr hat reichlich bugs & "features".
Bitte warten ..
Mitglied: florengray
02.04.2013 um 14:19 Uhr
Hi!
Ich würde das mit RegEx lösen. Bei 10 Mio Zeilen...

So auf die Schnelle habe ich mal den RegEx Pattern zusammengeschustert:
(?:.*\[debug\].*)\r\n|(?:.*\*{2}.*)\r\n

Mein Testtext ist folgender:
Zeile mit Kram drin
Zeile mit [debug] drin
Zeile mit was anderen
Zeile mit ** und noch mehr Zeichen
Zeile für das Ende

Wenn ich den Testtext in Notepad++ reinkopiere und bei suchen und ersetzen ->
Suchen nach:
01.
(?:.*\[debug\].*)\r\n|(?:.*\*{2}.*)\r\n
Ersetzen durch:
01.
\0
Suchmodus: Reguläre Ausdrücke -> anhacke

und dann auf [Alle Ersetzen] klicke kommt folgendes raus:
Zeile mit Kram drin
Zeile mit was anderen
Zeile für das Ende

Vielleicht nicht perfekt, aber auch ein Ansatz bzw. Versuch wert.

florengray
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Multimedia
gelöst PDF: Alle Seiten entfernen, welche nicht definierten String enthalten (9)

Frage von MegaGiga zum Thema Multimedia ...

Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...