(Bash) mehrere htm-Dateien nach Muster durchsuchen - Ergebnis in Liste speichern
Guten Tag Community! Ich würde mich sehr über ein wenig Hilfe bei meinem Problem freuen.
In einem Ordner befinden sich mehrere 100 .htm Dateien.
Diese enthalten ordnungsgemäß immer mal wieder den String:
"<li class="xyz"><a id="
Jetzt kommen da immer wieder einige hinzu/werden geändert und es kann passieren, dass sie sich so lesen:
"<li class="xyz">TEXT"
Ich bräuchte also ein Batch Skript (Windows XP/7), dass die .htm Dateien ausliest und nach dem Muster "<li class="xyz">" sucht und überprüft, ob es danach mit einem "<" weitergeht. Ist dies nicht der Fall, müsste der Dateiname in eine Liste, quasi eine Überprüfungsliste.
Leider bin ich in Batch absolut neu und würde mich sehr sehr freuen, falls mir hier jemand einen Code-Anstoß geben könnte.
Schonmal vielen Dank und viele Grüße
In einem Ordner befinden sich mehrere 100 .htm Dateien.
Diese enthalten ordnungsgemäß immer mal wieder den String:
"<li class="xyz"><a id="
Jetzt kommen da immer wieder einige hinzu/werden geändert und es kann passieren, dass sie sich so lesen:
"<li class="xyz">TEXT"
Ich bräuchte also ein Batch Skript (Windows XP/7), dass die .htm Dateien ausliest und nach dem Muster "<li class="xyz">" sucht und überprüft, ob es danach mit einem "<" weitergeht. Ist dies nicht der Fall, müsste der Dateiname in eine Liste, quasi eine Überprüfungsliste.
Leider bin ich in Batch absolut neu und würde mich sehr sehr freuen, falls mir hier jemand einen Code-Anstoß geben könnte.
Schonmal vielen Dank und viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147325
Url: https://administrator.de/forum/bash-mehrere-htm-dateien-nach-muster-durchsuchen-ergebnis-in-liste-speichern-147325.html
Ausgedruckt am: 04.04.2025 um 18:04 Uhr
5 Kommentare
Neuester Kommentar

Dann versuche mal:
Gruß
LotPings
findstr /S /I "\<li.class=\"xyz\"\>[^<]" *.htm
Gruß
LotPings

Prima, dann hier noch ein paar Erläuterungen:
Gruß
LotPings
- Findstr arbeitet standardmäßig im RegEx Modus, das Leerzeichen zwischen li und class habe ich deshalb gegen einen Punkt (=beliebiges Zeichen) ausgetauscht da sonst 2 unabhängige mit oder verknüpfte Suchbegriffe angenommen würden.
- /S = Rekursiv
- /i = ignoriere Gross-/Kleinschreibung
- Der Backslash dient zum Escapen der Sonderfunktion von < (=Wortanfang) , " (=Ende des Suchbegriffs)
- Die eckigen Klammern stellen eine Klasse von Zeichen dar, das erste Zeichen ^ negiert die Klasse,
[^<]
bedeutet also alle Zeichen die NICHT "<" sind.
Gruß
LotPings