noname69
Goto Top

Powershell matching string

Moin Entwickler,

bin derzeit dabei, zwei txt Dateien zu analysieren. Die eine ist (namentlich) zeitlich gesehen der Vorgänger und die andere der Nachfolger.
Möchte von der Vorgänger-Datei den ersten, von unten durchlaufenen "gematchten" string als gesamte Zeile in die Nachfolger-Datei als erste Zeile einfügen.
Ich will diese abfrage in meinen bereits erstellten regex einbinden.

Läuft das über Select-String | Select-Object -first ab? Wenn ja(nein), wie (sonst)? Danke im Voraus!

Content-Key: 394545

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: 137846
137846 03.12.2018, aktualisiert am 05.12.2018 um 09:58:42 Uhr
Goto Top
Moin KeinName
Ich will diese abfrage in meinen bereits erstellten regex einbinden.
Aha, schön, kennt keiner...
Möchte von der Vorgänger-Datei den ersten, von unten durchlaufenen "gematchten" string als gesamte Zeile
Läuft das über Select-String | Select-Object -first ab? Wenn ja(nein), wie (sonst)?
1001 Möglichkeiten ...
$lastmatch = select-string "D:\Vorgänger.txt" -Pattern 'DEINPATTERN' -Encoding UTF8 | select -Last 1 | select -Expand Line  
@($lastmatch,(gc "D:\nachfolger.txt")) | sc "D:\nachfolger.txt"  

Gruß A.
Mitglied: noname69
noname69 04.12.2018 um 15:30:38 Uhr
Goto Top
Danke für die rasche Antwort! Der Quelltext funktioniert aber nicht..
Anbei ein Beispielfoto, welches -Pattern gesucht werden soll.

Grüße NoName
unbenannt
Mitglied: 137846
137846 04.12.2018 aktualisiert um 16:11:24 Uhr
Goto Top
Zitat von @noname69:

Danke für die rasche Antwort! Der Quelltext funktioniert aber nicht..
Der funktioniert einwandfrei nur weiß ja keiner was du suchst und das ist ja im Skript ersichtlich was du anpassen musst !
Anbei ein Beispielfoto, welches -Pattern gesucht werden soll.
Wir kennen dein Muster und was von dem Text sich ändert nicht.

Einzeiler-Schilderungen bringen hier keinen weiter. Versuch es nochmal ausführlich, du willst Hilfe nicht wir.
Mitglied: noname69
noname69 04.12.2018 um 16:18:31 Uhr
Goto Top
Ok Danke, sollte jetzt passen. Ich suche die Zeile "Suche Sequenz für TransaktionsID 0123456".
unbenannt2
Mitglied: 137846
137846 04.12.2018 aktualisiert um 16:31:04 Uhr
Goto Top
Zitat von @noname69:

Ok Danke, sollte jetzt passen. Ich suche die Zeile "Suche Sequenz für TransaktionsID 0123456".
Na dann lautet dein Pattern
-Pattern 'Suche Sequenz für TransaktionsID \d+'  
wenn 0123456 variabel sein soll.
Wo hier jetzt das Problem sein soll verstehe ich nicht ....zumal du ja laut deiner Aussage anscheinend schon eigene Regex gebaut hast, sollte ja das Wissen dazu da sein.
Mitglied: noname69
noname69 05.12.2018 um 09:36:56 Uhr
Goto Top
Mir hat die zweite Zeile deines Codes gefehlt.
Es liegt immer noch kein Output dar. Der Code funktioniert bei mir nicht...
Mitglied: 137846
Lösung 137846 05.12.2018 aktualisiert um 12:49:16 Uhr
Goto Top
Zitat von @noname69:

Mir hat die zweite Zeile deines Codes gefehlt.
Witzbold. Das das oben in den Code einzusetzen ist sollte man doch interpretieren können ...
Es liegt immer noch kein Output dar. Der Code funktioniert bei mir nicht...
Doch. Geht hier, kann ich dir gerne beweisen! Ohne Fehlermeldung keine Hilfe.

VORHER:

screenshot

SKRIPT

screenshot

NACH DEM SKRIPT

screenshot

Vermutlich hast du bei Select-String einfach nicht das Encoding korrekt angegeben, so dass er die Umlaute nicht findet!

So, ich habe fertig. Tschö.