Suchworte in Textdateien per find auswerfen, aber auch x-Zeilen danach mitausgeben
Hallo in die Runde.
Ich möchte in Dateien per "find" bestimmte Zeilen finden und ausgeben. Soweit so einfach.
Die gesuchte Information steht aber i.d.R. in der Zeile (oder auch mehrere Zeilen) DANACH in der Datei.
Beispiel: Textauszug aus "DATEI.html" (hier die Zeilen 507 bis 510)
.
Ich durchsuche in der Kommandozeile (nicht Powershell) per "find" die Datei und bekomme folgende Ausgabe (hier mit Zeilennummer).
Die für mich relevante Info steht aber in der Zeile danach (siehe oben). Jetzt würde ich gern die Zeile 509 aus "DATEI.html" rausziehen. Wie kann ich das realisieren?
Oder gibt es einen Kommandozeilen-Befehl, um die Zeile 509 oder einen Zeilenbereich (hier 508 bis 509) aus einer Datei herauszuziehen?
Herzlichen Dank
Jörg
Ich möchte in Dateien per "find" bestimmte Zeilen finden und ausgeben. Soweit so einfach.
Die gesuchte Information steht aber i.d.R. in der Zeile (oder auch mehrere Zeilen) DANACH in der Datei.
Beispiel: Textauszug aus "DATEI.html" (hier die Zeilen 507 bis 510)
<tr>
<td width="40%"><span><b>Original Dateiname:</b></span></td>
<td><span>2012-08-23-xyzabcd-bcvdf-Mueller (11).jpg</span></td>
</tr>
.
Ich durchsuche in der Kommandozeile (nicht Powershell) per "find" die Datei und bekomme folgende Ausgabe (hier mit Zeilennummer).
C:\Users\xxx\Downloads>find /N "Original Dateiname:" "DATEI.html"
---------- DATEI.HTML
[508] <td width="40%"><span><b>Original Dateiname:</b></span></td>
Die für mich relevante Info steht aber in der Zeile danach (siehe oben). Jetzt würde ich gern die Zeile 509 aus "DATEI.html" rausziehen. Wie kann ich das realisieren?
Oder gibt es einen Kommandozeilen-Befehl, um die Zeile 509 oder einen Zeilenbereich (hier 508 bis 509) aus einer Datei herauszuziehen?
Herzlichen Dank
Jörg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 571752
Url: https://administrator.de/contentid/571752
Ausgedruckt am: 21.11.2024 um 12:11 Uhr
3 Kommentare
Neuester Kommentar
Moin Jörg,
Gruß Thomas
@echo off
:: Zeilennummer ermitteln
for /f "Tokens=1 Skip=2 Delims=" %%A in ('find /N "Original Dateiname:" "DATEI.html"') do set Zeile=%%A
:: Zeile danach ausgeben
for /f "skip=%Zeile% usebackq Delims=" %%A in ("DATEI.html") do (
set Ausgabe=%%A
goto :Next
)
:Next
echo "%Ausgabe%"
pause
Gruß Thomas
Oder auch
Ergebnis gleich in bereinigter Ausgabe:
Aber wieso man bei sowas heutzutage noch mit Batch rum hampelt... weiß der Geier?!
@echo off
set "file=C:\datei.html"
powershell -EP Bypass -C "[regex]::Match((gc '%file%' -raw),'(?is)(?<=Original Dateiname:.*?<span>)[^<]+').Value"
Ergebnis gleich in bereinigter Ausgabe:
2012-08-23-xyzabcd-bcvdf-Mueller (11).jpg
Aber wieso man bei sowas heutzutage noch mit Batch rum hampelt... weiß der Geier?!