PowerShell und die Dateisuche per Select-String

PowerShell (von starwindsoftware.com)

Wer unter Windows Textdateien durchsuchen will, dem stehen mit find und findstr bereits 2 Kommandozeilen-Tools zur Verfügung. Die PowerShell Variante bietet euch gegenüber den einfachen DOS Kommandozeilen-Tools einige wesentliche Vorteile. Mit Hilfe von Select-String steht euch nämlich nicht nur eine einfache Shell, sondern eine interaktive Umgebung zur Verfügung.

Während das Kommandozeilen Tool find recht einfach ausgestattet ist, bietet euch findstr immerhin schon einige Funktionen von dem Linux Befehl grep unter Windows an. Die PowerShell bietet euch allerdings mit dem Select-String Befehl Möglichkeiten an, die weit über die altbewährten Tools hinausgehen. Zusätzlich beinhaltet es die generellen Vorteile eines PowerShell cmdlets, die eng mit den anderen Funktionen dieser zusammenarbeiten.

Die einfachste Anwendung

In der Grundform besteht der Aufruf des Select-String cmdlets darin, dass ihr ihm einen Dateinamen bzw. ein per Wildcard gesetztes Muster für Dateinamen übergebt. Zum Beispiel

Select-String -path beispieldatei.html -pattern „beispieltext“

In dem obigen Beispiel erfolgt die Ausgabe aller Zeilen, die den Suchbegriff beispieltext enthalten inklusive Angabe der jeweiligen Zeilennummer. Der Vergleich zwischen dem Suchbegriff und dem Inhalt der jeweiligen Datei erfolgt im Normalfall ohne Beachtung der Groß-/Kleinschreibung – ein Vorteil gegenüber den älteren Tools. In der PowerShell kann man dem cmdlet Select-String um den Schalter –CaseSensitive erweitern und bekommt so nur die Ergebnisse in der jeweiligen Schreibweise angezeigt. Der Parameter -pattern wird grundsätzlich als regulärer Ausdruck übergeben.

Suche nach einfacher Zeichenkette

Wenn ihr nur nach einer einfachen Zeichenkette suchen wollt, braucht ihr einen anderen Parameter. Mittels -SimpleMatch „suchbegriff“ könnt ihr innerhalb der Datei nach allem suchen, was die Zeichenkette suchbegriff enthält. Die Ausgabe erfolgt hier ebenso mit der Angabe der Zeilennummer.

Select-String -path beispieldatei.html -SimpleMatch „suchbegriff“

Inverse Suche mittels -NotMatch Parameter

Über den Paramter –NotMatch könnt ihr euch auch alle Zeilen der Datei ausgeben lassen, die den jeweiligen Suchbegriff nicht enthalten. Beispiel:

Select-String -path beispieldatei.html -pattern „suchbegriff“ -NotMatch

Das würde euch nur die Zeilen mit Angabe der Zeilennummer ausgeben, die den Suchbegriff nicht enthalten.

Ein Kommentar

Schreibe einen Kommentar

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