Powershell select-string -pattern
Hallo,
ich muss auf die schnelle ca. 1000 EDIFACT Dateien auswerten.
Dazu versuche ich mich gerade in Powershell einzuarbeiten.
Ein geeignetes cmdlet scheint mir "select-string" mit dem Parameter "-pattern'
Hier mein 1. Versuch
Dabei gibt er mir keine Zeile aus. Ändere ich die Pattern z.B. in "BGM" und "MOA" erhalte ich mehrere Zeilen.
Wie maskiere ich die Pattern, dass auch + (ich denke es liegt daran) als Teil des Suchstrings angesehen werden. Fragezeichen ? und Stern * geht hier scheinbar nicht.
Weitere Fragen werden mit Sicherheit folgen
Danke und Gruß
LianenSchwinger
ich muss auf die schnelle ca. 1000 EDIFACT Dateien auswerten.
Dazu versuche ich mich gerade in Powershell einzuarbeiten.
Ein geeignetes cmdlet scheint mir "select-string" mit dem Parameter "-pattern'
Hier mein 1. Versuch
$Patterns = @("BGM+380::89","BGM+381::89","MOA+9:")
$Path = "test_001.wfa"
$OutPath="test.log"
Foreach($Pattern in $Patterns){
$PatternLines = Select-String -path $Path -pattern $Pattern
$PatternLines | Out-File -filepath $OutPath -append -encoding Default
}
Dabei gibt er mir keine Zeile aus. Ändere ich die Pattern z.B. in "BGM" und "MOA" erhalte ich mehrere Zeilen.
Wie maskiere ich die Pattern, dass auch + (ich denke es liegt daran) als Teil des Suchstrings angesehen werden. Fragezeichen ? und Stern * geht hier scheinbar nicht.
Weitere Fragen werden mit Sicherheit folgen
Danke und Gruß
LianenSchwinger
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 331385
Url: https://administrator.de/contentid/331385
Ausgedruckt am: 05.11.2024 um 04:11 Uhr
2 Kommentare
Neuester Kommentar
Hi,
hättest du die Anleitung zum CMDLet gelesen wüsstest du jetzt das -Pattern ohne Verwendung des Parameters -SimpleMatch Strings in Regular Expression Syntax erwartet und da haben Sonderzeichen wie (.*+$°{}) etc . pp besondere Bedeutung!
Und das Pattern-Array kannst du auch ohne Schleife übergeben denn -Pattern akzeptiert auch String-Arrays ([string[]]) als Eingabe.
Also reicht ein:
Gruß
hättest du die Anleitung zum CMDLet gelesen wüsstest du jetzt das -Pattern ohne Verwendung des Parameters -SimpleMatch Strings in Regular Expression Syntax erwartet und da haben Sonderzeichen wie (.*+$°{}) etc . pp besondere Bedeutung!
Und das Pattern-Array kannst du auch ohne Schleife übergeben denn -Pattern akzeptiert auch String-Arrays ([string[]]) als Eingabe.
Also reicht ein:
$Path = "test_001.wfa"
$OutPath="test.log"
$Patterns = @("BGM+380::89","BGM+381::89","MOA+9:")
Select-String -path $Path -pattern $Patterns -SimpleMatch | Out-File -filepath $OutPath -encoding Default