Wie bekomme ich Suchtext von PowerShell?

Wie bekomme ich Suchtext von PowerShell?

grep ist ein leistungsstarkes Textsuchprogramm unter Linux, aber es ist nicht unter Windows verfügbar. Obwohl es Ports und Lösungen von Drittanbietern gibt, bietet PowerShell integrierte Äquivalente grep , die in Ihren Skripts die gleiche Aufgabe erfüllen.

Verwenden von findstr zum Suchen in PowerShell

PowerShell verfügt über mehrere verschiedene Suchprogramme, jedes mit seinen eigenen Stärken. Am einfachsten ist findstrdie native ausführbare Windows-Datei. Dies funktioniert gut, um grep für einfache Suchoperationen auf der Befehlszeile zu ersetzen. Beispielsweise können Sie ihm die Ausgabe übergeben, ls um nach Übereinstimmungen zu suchen.

ls | findstr "foo"

Sie können auch nach mehreren Wörtern gleichzeitig suchen, Platzhalter verwenden, um Übereinstimmungen zu finden, und ein /R Flag verwenden, um grundlegende reguläre Ausdrücke zu übergeben.

ls | findstr /R ba[a-z]\.txt

Wenn Sie jedoch explizit mit Leerzeichen suchen möchten, müssen Sie /C: das Flag verwenden:

ls | findstr /C:"foo"

Wenn Sie an die Linux-Befehlszeile gewöhnt sind und sich keinen neuen Befehl merken möchten, können Sie „grep“ als Alias ​​für einrichten findstr, wodurch Sie etwas Muskelspeicher sparen.

new-alias grep findstr

Verwenden von Select-String zum Suchen nach grep in PowerShell

Eine weitere native Methode, die von PowerShell angeboten wird, ist das Select-String Cmdlet, das in vielerlei Hinsicht ähnlich ist, findstraber eher ein PowerShell-Cmdlet als eine ausführbare Windows-Datei ist.

Dies bedeutet, dass es in PowerShell-Skripten besser funktioniert und vor allem seine Ausgabe als Objekt zurückgibt, das von PowerShell schön gedruckt werden kann. Es ist auch einfacher in der Befehlszeile zu verwenden, da die PowerShell-Tab-Vervollständigung damit funktioniert.

Es funktioniert auf die gleiche findstrWeise und kann Platzhalter und reguläre Ausdrücke akzeptieren.

ls | Select-String fools | Select-String -Pattern <regexPattern>

Sie können verwenden Select-String , um nach Text in Dateien zu suchen, indem -Path Sie ihm ein Argument übergeben. Sie können es auch mit Eingaben verwenden, die von anderen Cmdlets wie Get-Content.

Select-String -Path ".\foo.txt"-Pattern ba.*

Wenn Sie es auf der Befehlszeile verwenden möchten, können Sie für den schnellen Zugriff auch den Alias ​​“grep“ verwenden.

remove-alias grep

new-alias grep Select-String

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert