Für den Uneingeweihten mag ein Mustersuchtool wie findstr nutzlos erscheinen. Aber wenn es um vom System generierte Protokolldateien oder Befehlszeilenausgaben geht, die Hunderte von Textzeilen enthalten, ist findstr genau das Werkzeug, das Sie brauchen.
Benutzer eines Linux-Betriebssystems sind bereits mit der unglaublichen Nützlichkeit des Grep-Befehls vertraut, und findstr erfüllt eine ähnliche Rolle in Microsoft Windows. Sie können es mithilfe von Pipes mit anderen Befehlen kombinieren oder es einfach direkt ausführen, um mehrere Textdateien zu analysieren. Schauen wir uns anhand einiger Beispiele an, wie findstr funktioniert.
Inhaltsverzeichnis
Verwenden des Findstr-Befehls
Die grundlegende Syntax ist einfach – findstr
findstr SFC example1.txt
Dieser Befehl findet und gibt alle Zeilen aus, die den Suchstring SFC enthalten. Beachten Sie, dass bei findstr standardmäßig zwischen Groß-und Kleinschreibung unterschieden 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 modifizieren das Verhalten von findstr, indem sie der Suche zusätzliche Bedingungen auferlegen. Zum Beispiel:
findstr/I SFC example1.txt
Durch das Einschließen von/I als Parameter wird die Groß-und Kleinschreibung bei der Suche nicht berücksichtigt, sodass alle Erwähnungen des Begriffs to möglich sind übereinstimmen, unabhängig von ihrer Großschreibung. Die Liste aller Parameter von findstr finden Sie im official Microsoft-Dokumentation.
Optionale Muster
Parameter sind nicht die einzige Möglichkeit, findstr anzupassen. Wenn Sie beispielsweise
findstr „SFC DISM“ example1.txt
Das Obige gibt übereinstimmende Zeilen zurück, die einen der Begriffe enthalten. Dies macht es nützlich, wenn Sie nach einer Erwähnung für ein Element mit unterschiedlichen Namen suchen.
Reguläre Ausdrücke
Findstr kann mehrere Dateien durchsuchen. Wenn Sie
findstr SFC *.txt
Die Verwendung des Platzhalterzeichens gleicht die Regex mit allen Textdateien im aktuellen Verzeichnis und seinen Unterverzeichnissen ab. Die Ergebnisse werden ebenfalls nach Dateinamen getrennt, sodass Sie sehen können, welche Zeile aus welcher Datei stammt.
Pipes
Wie die meisten cmd-Befehle kann findstr auch für die Ausgabe anderer Befehle verwendet werden. Fügen Sie einfach eine Pipe nach dem Ende des Zielbefehls hinzu und rufen Sie findstr ohne
Verzeichnis | findstr.txt
Dies führt eine findstr-Suche auf der Ausgabe des dir-Befehls durch und gibt die Dateiliste mit der Endung.txt zurück. Natürlich ist dieses spezielle Beispiel in der Praxis nutzlos, da dir bereits Dateien des gleichen Typs mit einem regulären Ausdruck finden kann.
Man kann auch den längeren Weg nehmen, die Ausgabe in eine Textdatei umzuleiten und dann findstr für die Textdatei zu verwenden, aber es ist einfacher, den Mittelsmann abzuschneiden.
Anwendungen von Findstr in Windows
Die offensichtliche Verwendung von Findstr ist allein aus der Syntax ersichtlich. Sie können nach Textdateien mit einer bestimmten Textzeichenfolge suchen oder sehen, 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 haben die meisten Menschen nicht mehr viele Textdateien.
Die eigentlichen Anwendungen von findstr sind etwas subtiler und beinhalten leistungsfähigere Ergebnisse. Hier sind einige der interessanteren Beispiele.
Suchen nach bestimmten Dateitypen
Der Befehl dir enthält bereits die Option, mit regulären Ausdrücken nach Dateinamen zu suchen. Aber mit findstr können Sie nach Dateien suchen, die andere Attribute haben, wie z. B. die Zeit 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. Mit dem dir-Befehl allein müssen Sie die Ergebnisse manuell durchsehen oder alle Protokolldateien abrufen und vergleichen. Mit findstr wird dies zu einem einfachen Befehl.
Verzeichnis | findstr 06:43
Sie können denselben Trick ausprobieren, um Dateien zu finden, die an einem bestimmten Datum erstellt wurden, oder eine Liste von Verzeichnissen erhalten.
Verzeichnis | findstr DIR
Filtern von Netzwerkinformationen mit Netstat
Netstat ist ein praktischer Windows-Befehl, der Ihnen alle Informationen über die Netzwerkverbindungen Ihres Computers liefert – zu viele Informationen, wo findstr
Wenn Sie die Ausgabe von netstat an findstr weiterleiten, können Sie nach Verbindungen mit bestimmten Eigenschaften suchen. So erhalten Sie beispielsweise eine Liste aller aufgebauten Verbindungen.
netstat | findstr GERICHTET
Dieser Trick ist hilfreich bei der Diagnose von Netzwerkproblemen. Sie können findstr sogar mit einer Anwendungs-PID verwenden, um alle Verbindungen zu finden, die von einem bestimmten Prozess geöffnet wurden.
netstat-o | findstr 13120
Beziehen bestimmter IP-Adressen
Mit dem Befehl ipconfig können Sie Details aller Netzwerkschnittstellen des Systems anzeigen, einschließlich IP-Adressen. Sie können findstr verwenden, um eine bestimmte Art 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 zu den Gateway-Adressen.
Skriptdateien analysieren
Egal in welcher Programmiersprache Sie codieren, die Skriptdateien sind letztendlich nur 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 wollen 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 mit dem angezeigt if-Anweisung, zeigt uns aber 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 durchgehen 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 der Fehlerbehebung bei Netzwerkproblemen bis zum Auffinden der richtigen Dateien wird jede Aktion mit findstr effizienter.
Sogar außerhalb seiner Synergie mit anderen Befehlen ist findstr hilfreich für seine Fähigkeit, den Inhalt von Textdateien zu durchsuchen. 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 eines jeden fortgeschrittenen Windows-Benutzers, insbesondere eines, der sich mit der Befehlszeilenschnittstelle vertraut machen möchte.