(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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 147325
Url: https://administrator.de/contentid/147325
Printed on: April 19, 2024 at 15:04 o'clock
5 Comments
Latest comment
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