Powershell - In Textdatei suchen und ersetzen
Hallo Zusammen,
ich habe einen Textdatei mit vielen aufeinander folgendenden Leerzeichen und wo an diversen Stellen Überschriften stehen.
Ungefähr so:
Ich möchte gerne alle beginnenden Leerzeichen entfernen und alle Überschriften (Thema..).
Alles was ich bisher versucht habe, hat leider nicht das gewünschte Ergebnis gebracht.
Dachte etwas in diese Richtung:
1. Zeilen der Textdatei zählen
2. Per For-Schleife in Arrays packen
3. Mit TrimStart() Leerzeichen entfernen?
4. Mit Where-Object irgendwie mit - like "Thema*" die Array Variable löschen?
5. Alle Arrays in die vorhandenen Textdatei schreiben
Evtl. geht's auch einfacher und übersichtlicher?
Würde mich über jede Hilfe freuen.
Vielen Dank.
ich habe einen Textdatei mit vielen aufeinander folgendenden Leerzeichen und wo an diversen Stellen Überschriften stehen.
Ungefähr so:
Thema1 - Hamburg
Sehenswürdigkeiten..
Lokale..
Parkplätze..
Thema2 - Köln
Sehenswürdigkeiten..
Lokle..
Parkplätze..
Ich möchte gerne alle beginnenden Leerzeichen entfernen und alle Überschriften (Thema..).
Alles was ich bisher versucht habe, hat leider nicht das gewünschte Ergebnis gebracht.
Dachte etwas in diese Richtung:
1. Zeilen der Textdatei zählen
2. Per For-Schleife in Arrays packen
3. Mit TrimStart() Leerzeichen entfernen?
4. Mit Where-Object irgendwie mit - like "Thema*" die Array Variable löschen?
5. Alle Arrays in die vorhandenen Textdatei schreiben
Evtl. geht's auch einfacher und übersichtlicher?
Würde mich über jede Hilfe freuen.
Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 322830
Url: https://administrator.de/forum/powershell-in-textdatei-suchen-und-ersetzen-322830.html
Ausgedruckt am: 29.04.2025 um 08:04 Uhr
5 Kommentare
Neuester Kommentar

Evtl. geht's auch einfacher und übersichtlicher?
Mit ein bisschen Regex keine große Sache (gc 'c:\datei.txt' | ?{$_ -notmatch '^\s*$|^\s*Thema.*'}) -replace '^\s+','' | set-content 'c:\datei.txt'
Gruß

Zitat von @Raaja89:
Gibt es auch die Möglichkeit weitere Zeilen mit anderen Begriffen verschwinden zu lassen?
Klar, einfach den Regex anpassen das (|) trennt die einzelnen Patterns (OR-Verknüpfung) voneinander.Gibt es auch die Möglichkeit weitere Zeilen mit anderen Begriffen verschwinden zu lassen?

(gc 'c:\datei.txt' | ?{$_ -notmatch '^\s*$|Thema|Dritte Überschrift'}) -replace '^\s+','' | set-content 'c:\datei.txt'