Wie liste ich in Powershell alle Dateien in einem Verzeichnis (rekursiv) auf, die Text enthalten, der einer bestimmten Regex entspricht? Die fraglichen Dateien enthalten sehr lange Zeilen mit unverständlichem Text, daher möchte ich nicht die übereinstimmende Zeile sehen - nur den Dateinamen.
quelle
select -Unique
... cool, etwas Neues gelernt. Das funktioniert perfekt, danke!Beachten Sie, dass Sie in Powershell v1.0 und v2.0 den ersten Positionsparameter (Pfad) angeben müssen, mit dem gearbeitet werden soll
-Recursion
Technet-Dokumentation
quelle
Verwenden Sie den folgenden Befehl in dem Verzeichnis, in dem Sie das "grep" ausführen möchten, und ändern Sie den Befehl so, dass er dem entspricht
[SEARCH_PATTERN]
, mit dem Sie übereinstimmen möchten. Es ist rekursiv und durchsucht alle Dateien im Verzeichnis.http://www.jamescoyle.net/how-to/1205-how-to-use-powershell-to-recursively-search-for-text-within-files-on-windows
quelle
Select-String hat einen
-List
Parameter für diesen Zweck:- ss64.com
Du kannst es so benutzen:
So sehen einige Beispielergebnisse aus (nach denen im Windows SDK gesucht wird
ERROR_SUCCESS
):Wenn Sie die tatsächlichen
FileInfo
Objekte zurückholen möchten (anstelle des relativen Pfads und eines einzelnen Übereinstimmungsergebnisses), können Sie dies folgendermaßen verwenden:quelle