grisu84
Goto Top

Umformen einer txt mit Powershell

Hallo,
ich habe ein PowerShell-Skript mit dem ich eine *.txt umforme.
Das funktioniert inzwischen soweit auch ganz gut.
jetzt möchte ich zwei Sachen noch ändern, komme hier aber nicht weiter.

mit diesem Code werden in einem bestimmten Bereich alle Zeilen gelöscht die nicht "ABC" enthalten.
?{$_ -match 'ABC'}  
Ich würde dies gerne um ein Kriterium erweitern, nämlich dass auch die Zeilen, welche "XYZ" enthalten, erhalten bleiben

Mein zweites Problem ist, dass ich für einen bestimmten Abschnitt der *.txt an jedes Zeilenende "123" anhängen will.

Kann mir hier jemand helfen?

Viele Grüße

Content-ID: 665410

Url: https://administrator.de/contentid/665410

Ausgedruckt am: 23.11.2024 um 18:11 Uhr

143611
Lösung 143611 06.04.2021 um 08:10:45 Uhr
Goto Top
Moin,

Deine Suche/match nach "XYZ" könntest Du mit einem -or in derselben Zeile verknüpfen:

?{($_ -match 'ABC') -or ($_ -match 'XYZ')}  

VG
schleeke
Grisu84
Grisu84 06.04.2021 um 08:30:23 Uhr
Goto Top
Hallo schleeke,
das hilft mir schon extrem weiter. Vielen Dank.
Jetzt muss ich nur das andere noch hinbekommen
148121
148121 06.04.2021 aktualisiert um 11:02:25 Uhr
Goto Top
Zitat von @143611:

Moin,

Deine Suche/match nach "XYZ" könntest Du mit einem -or in derselben Zeile verknüpfen:
Oder da hier sowieso direkt mit Regex gearbeitet wird geht's kürzer so
?{$_ -match 'ABC|XYZ'}  

Zum Anhängen von Strings kann man auch einfach ne Regex Replace nehmen
Bsp. für Zeilen die mit ABC beginnen ein 123 anhängen
$text = [Regex]::Replace($text,'(?im)^(ABC.*)','$1123')  
143611
143611 06.04.2021 um 11:16:07 Uhr
Goto Top
Oder da hier sowieso direkt mit Regex gearbeitet wird geht's kürzer so
>?{$_ -match 'ABC|XYZ'}  
>

...ach ja, da war ja was - nice! Vergess' den ganzen RegEx-Kram regelmäßig, obwohl man best. 80% der string-Manipulationen damit abfrühstücken könnte...