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
Please also mark the comments that contributed to the solution of the article
Content-Key: 331385
Url: https://administrator.de/contentid/331385
Printed on: April 19, 2024 at 13:04 o'clock
2 Comments
Latest comment
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