Für den Uneingeweihten mag ein Mustersuchtool wie findstr nutzlos erscheinen. Aber wenn Sie mit vom System generierten Protokolldateien oder Befehlszeilenausgaben arbeiten, die Hunderte von Textzeilen enthalten, ist findstr genau das Tool, das Sie brauchen.
Benutzer eines Linux-Betriebssystems sind bereits mit dem unglaublichen Nutzen des Grep-Befehls vertraut, und findstr erfüllt eine ähnliche Rolle in Microsoft Windows. Sie können es mithilfe von Pipes mit andere Befehle kombinieren oder es einfach direkt ausführen, um mehrere Textdateien zu analysieren. Schauen wir uns anhand einiger Beispiele an, wie findstr funktioniert.
Verwenden des Findstr-Befehls
Die grundlegende Syntax ist einfach – findstr
findstr SFC example1.txt
Dieser Befehl findet alle Zeilen, die die Suchzeichenfolge SFC enthalten, und gibt sie aus. Beachten Sie, dass bei findstr standardmäßig die Groß-/Kleinschreibung beachtet wird, sodass alle Erwähnungen von SFC nicht abgeglichen werden.
Parameter
Sie können die Funktionsweise von findstr weiter anpassen, indem Sie optionale Parameter hinzufügen. Schalter wie /B oder /I ändern das Verhalten von findstr und legen zusätzliche Bedingungen für die Suche fest. Zum Beispiel:
findstr /I SFC example1.txt
Durch die Einbeziehung von /I als Parameter wird bei der Suche die Groß-/Kleinschreibung nicht berücksichtigt, sodass alle Erwähnungen des Begriffs übereinstimmen, unabhängig von der Groß- und Kleinschreibung. Die Liste aller Parameter von findstr finden Sie in offizielle Microsoft-Dokumente.
Optionale Muster
Parameter sind nicht die einzige Möglichkeit, findstr anzupassen. Wenn Sie beispielsweise den
findstr „SFC DISM“ example1.txt
Oben werden übereinstimmende Zeilen zurückgegeben, die einen der Begriffe enthalten. Dies ist nützlich, wenn Sie nach einer Erwähnung für einen Artikel mit unterschiedlichen Namen suchen.
Reguläre Ausdrücke
Findstr kann mehrere Dateien durchsuchen. Wenn Sie
findstr SFC *.txt
Die Verwendung des Platzhalterzeichens ordnet den regulären Ausdruck allen Textdateien im aktuellen Verzeichnis und seinen Unterverzeichnissen zu. Die Ergebnisse sind ebenfalls nach Dateinamen getrennt, sodass Sie sehen können, welche Zeile aus welcher Datei stammt.
Rohre
Wie die meisten cmd-Befehle kann findstr auch für die Ausgabe anderer Befehle verwendet werden. Fügen Sie einfach nach dem Ende des Zielbefehls eine Pipe hinzu und rufen Sie findstr ohne
dir | findstr .txt
Dadurch wird eine findstr-Suche in der Ausgabe des dir-Befehls ausgeführt und die Dateiliste mit der Endung .txt zurückgegeben. Natürlich ist dieses spezielle Beispiel in der Praxis nutzlos, da dir mit einem regulären Ausdruck bereits Dateien desselben Typs finden kann.
Man kann auch den längeren Weg von Umleiten der Ausgabe in eine Textdatei nehmen und dann findstr für die Textdatei verwenden, aber es ist einfacher, den Mittelsmann auszuschalten.
Anwendungen von Findstr in Windows
Die offensichtlichen Verwendungsmöglichkeiten von findstr sind allein aus der Syntax leicht ersichtlich. Sie können nach Textdateien mit einer bestimmten Textzeichenfolge suchen oder prüfen, ob eine bestimmte Zeichenfolge in einer Datei enthalten ist.
Dies ist zwar theoretisch nützlich, wird jedoch selten außerhalb seltener Fälle verwendet. Im Zeitalter von Cloud-Diensten wie Google Docs verfügen die meisten Menschen nicht mehr über viele Textdateien.
Die eigentlichen Anwendungen von findstr sind etwas subtiler und führen zu aussagekräftigeren Ergebnissen. Hier sind einige der interessanteren Beispiele.
Bestimmte Dateitypen finden
Der dir-Befehl enthält bereits die Option, mithilfe regulärer Ausdrücke nach Dateinamen zu suchen. Aber mit findstr können Sie nach Dateien suchen, die andere Attribute teilen, wie zum Beispiel die Uhrzeit oder das Datum der Erstellung.
Angenommen, um 18:43 Uhr ist ein Fehler aufgetreten und Sie möchten alle zu diesem Zeitpunkt erstellten Protokolldateien finden. Allein mit dem Befehl dir müssen Sie die Ergebnisse manuell durchsehen oder alle Protokolldateien abrufen und vergleichen. Mit findstr wird dies zu einem einfachen Befehl.
dir | findstr 06:43
Sie können denselben Trick ausprobieren, um an einem bestimmten Datum erstellte Dateien zu finden oder eine Liste von Verzeichnissen zu erhalten.
dir | findstr DIR
Netzwerkinformationen mit Netstat filtern.
Netstat ist ein praktischer Windows-Befehl, der Ihnen alle Informationen über die Netzwerkverbindungen Ihres Computers liefert – zu viele Informationen, und hier kommt findstr ins Spiel.
Durch die Weiterleitung der Ausgabe von netstat an findstr können Sie nach Verbindungen mit bestimmten Eigenschaften suchen. So erhalten Sie beispielsweise eine Liste aller aufgebauten Verbindungen.
netstat | findstr ESTABLISHED
Dieser Trick ist nützlich bei der Diagnose von Netzwerkproblemen. Sie können findstr sogar mit einer Anwendungs-PID verwenden, um alle von einem bestimmten Prozess geöffneten Verbindungen zu finden.
netstat -o | findstr 13120
Erhalten spezifischer IP-Adressen
Mit dem Befehl ipconfig können Sie Details aller Netzwerkschnittstellen der Systeme anzeigen, einschließlich IP-Adressen. Sie können findstr verwenden, um einen bestimmten Typ von IP-Adresse zu extrahieren, ohne durch das Ganze scrollen zu müssen.
ipconfig | findstr Temporär
Sie können diese Methode erweitern, um beliebige Informationen von ipconfig zu erhalten, von den Subnetzmasken bis hin zu Gateway-Adressen.
Skriptdateien analysieren
Unabhängig davon, in welcher Programmiersprache Sie programmieren, bestehen die Skriptdateien letztendlich nur aus Text. Das bedeutet, dass Sie findstr verwenden können, um Skripte zu analysieren und bestimmte Abschnitte abzurufen, ohne den gesamten Code durchsuchen zu müssen.
Angenommen, wir möchten sehen, wie die if-Anweisung in einem bestimmten Skript verwendet wurde. Wir können den folgenden Befehl verwenden:
findstr if script.ahk
Dadurch werden nicht nur die Zeilen angezeigt, die die if-Anweisung verwenden, sondern auch die verwendeten Ausdrücke. Sie können auch den Parameter /N einfügen, um die Zeilennummern anzuzeigen, was für Skriptdateien sehr praktisch ist.
findstr /N if script.ahk
Lohnt sich die Verwendung von Findstr?
Die Hauptschwierigkeit beim Navigieren in der Befehlszeilenschnittstelle ist die Menge an Text, die man durchsuchen muss. Findstr ist ein unverzichtbares Tool zum Extrahieren nützlicher Informationen und zum Herausfiltern von Junk.
Da alle Terminalbefehle eine textbasierte Ausgabe liefern, kann findstr immer verwendet werden, um die relevanten Daten zu finden. Von Behebung von Netzwerkproblemen bis zum Finden der richtigen Dateien wird jede Aktion mit findstr effizienter..
Auch außerhalb seiner Synergie mit anderen Befehlen ist findstr aufgrund seiner Fähigkeit, den Inhalt von Textdateien zu durchsuchen, hilfreich. Sie können bestimmte Fehler in maschinell generierten Protokolldateien finden oder Codeabschnitte in einem komplexen Skript abrufen.
Kurz gesagt, findstr ist ein unverzichtbares Werkzeug im Arsenal jedes fortgeschrittenen Windows-Benutzers, insbesondere wenn er sich mit der Befehlszeilenschnittstelle vertraut machen möchte.
.