Müde von der Verwendung der gleichen alten Suchwerkzeuge auf Ihrem Computer, wie grep? Warum sich damit zufriedengeben? Viele grep-Äquivalente in Windows können Ihnen helfen, genau das zu finden, wonach Sie suchen.
In diesem Tutorial erfahren Sie, wie diese grep-Äquivalente es ermöglichen, Dateien schneller zu durchsuchen und die benötigten Informationen im Handumdrehen zu finden.
Bleiben Sie dran und schließen Sie mächtige Suchwerkzeuge in Ihre Freundschaft ein!
Voraussetzungen
Dieses Tutorial beinhaltet praktische Demonstrationen. Um mitzumachen, stellen Sie sicher, dass Sie Folgendes haben:
- A Window machine – This tutorial uses Windows 10 PC, but any version of Windows will suffice.
- PowerShell – In diesem Tutorial wird PowerShell 7.2.8 verwendet.
- Scoop – In diesem Tutorial wird scoop v0.3.1 verwendet.
Suchen bestimmter Textzeichenfolgen (findstr
) in Dateien
Die Fähigkeit, bestimmte Zeichenfolgen (mit bestimmten Mustern), nach denen Sie in einer Datei suchen, sofort zu finden, erleichtert Ihre Arbeit. Aber wie? Wenden Sie sich an das Befehlszeilenprogramm findstr
in Windows, mit dem Sie nach bestimmten Textzeichenfolgen in Dateien suchen können.
findstr
wird häufig als Äquivalent zu grep in Windows verwendet, da es ähnliche Funktionalitäten wie der Unix-Befehl grep
bietet. Welche Vorteile ergeben sich aus der Verwendung von findstr
? Ein Beispiel ist, dass es in jedem Windows-Betriebssystem (OS) integriert ist – es ist keine zusätzliche Software erforderlich.
Um bestimmte Zeichenketten in einer Datei zu finden, befolgen Sie diese Schritte:
Erstellen Sie eine Textdatei mit Ihrem bevorzugten Texteditor, benennen Sie sie in notes.txt um und fügen Sie den unten stehenden Inhalt in die Datei ein.
Hello, world. This is an example of a text file.
I am writing some notes in this file.
Here are some keywords to search for: apple banana cherry.
Öffnen Sie nun PowerShell als Administrator und führen Sie den unten stehenden Befehl aus, um Zeichenketten (findstr
) gegen das Suchmuster ("apple"
) in der Datei notes.txt
zu finden.
? findstr verfügt über viele Parameter, die zur Anpassung der Suche verwendet werden können. In diesem Tutorial werden jedoch einige der wertvollsten Parameter beim Suchen von Zeichenketten in Dateien erkundet.

? Vielleicht suchen Sie nach Zeichenketten in mehreren Dateien. Wenn ja, geben Sie die Dateipfade durch Leerzeichen getrennt an, wie im Beispiel unten:
findstr Parameter "Muster" "C:\\Pfad\\zu\\Datei1.txt" "C:\\Pfad\\zu\\Datei2.txt"
Auffinden von Zeichenketten, die einem bestimmten Muster oder Literal entsprechen
Bei der Arbeit mit Konfigurationsdateien ist es wichtig, Zeichenfolgen in einem bestimmten Muster oder wörtlich zu finden, insbesondere beim Debuggen. Glücklicherweise gibt der Parameter /c
dem Befehl findstr
an, nach wörtlichen Zeichenfolgen zu suchen, die einem angegebenen Muster entsprechen, einschließlich Leerzeichen oder Sonderzeichen.
Das Anhängen des Parameters /c
an den Befehl findstr
ist in den folgenden, aber nicht darauf beschränkt, Fällen hilfreich:
- Suchen nach einer bestimmten Phrase oder einer Reihe von Wörtern, die in einer bestimmten Reihenfolge erscheinen.
- Suchen nach einer Zeichenkette, die Leerzeichen oder Sonderzeichen enthält.
Um zu sehen, wie der Parameter /c
in Aktion funktioniert, befolgen Sie diese Schritte:
1. Führen Sie den folgenden Befehl findstr
aus, um in der Datei *notes.txt*
nach der wörtlichen Zeichenfolge (/c
) banana cherry
zu suchen.
In der Ausgabe unten gibt der Befehl findstr
nur die Zeilen zurück, die die exakte Zeichenkette banana cherry
mit einem Leerzeichen zwischen den beiden Wörtern enthalten.
Beachten Sie, dass der Parameter /c
auf die Groß- und Kleinschreibung achtet. Der Befehl findstr
gibt nur die Zeichenkette mit der genau angegebenen Buchstabenhöhe zurück. Wenn eine der Zeichenfolgen in der Datei notes.txt nicht dem angegebenen Muster entspricht, gibt der Befehl findstr
eine leere Ausgabe zurück.

2. Fügen Sie anschließend die folgende Zeile zur Datei notes.txt hinzu und speichern Sie die Änderungen.
Zu diesem Zeitpunkt sollten zwei Zeilen in Ihrer notes.txt-Datei mit dem „hello“-String vorhanden sein. Eine in Kleinbuchstaben (hello, world.
) und eine andere mit einem Großbuchstaben ‚H‘ (Hello, world.
).
hello, world.
3. Führen Sie nun jeden der folgenden Befehle aus, um nach dem Zeichenfolgenliteral hello, world
oder Hello, world
in der Datei notes.txt
zu suchen.
Beachten Sie unten, dass Sie unabhängig davon, ob zwei Zeilen den String „hello, world“ in der Datei notes.txt enthalten, nur eine Zeile mit der Zeichenfolge erhalten.
Der Parameter /c
teilt dem Befehl findstr
mit, Zeilen zu drucken, die die Zeichenfolge „hello, world“ mit entweder Klein- oder Großbuchstaben ‚H‘ enthalten.

4. Führen Sie schließlich den Befehl findstr
unten aus, um nach Zeichenfolgen zu suchen, die das Muster hello
in der Datei notes.txt
enthalten, wobei die Groß-/Kleinschreibung ignoriert wird (/i
).
Die Groß-/Kleinschreibungssuche funktioniert gut, wenn Sie bereits die tatsächliche Groß-/Kleinschreibung der gesuchten Zeichenfolge kennen. Wenn Sie jedoch alle Zeilen von Zeichenfolgen sehen möchten, die einem Muster unabhängig von der Groß-/Kleinschreibung entsprechen, erledigt der Parameter /i
das.

Auffinden bestimmter Zeichenfolgen in Dateien und Verzeichnissen
Neben der Suche nach bestimmten Zeichenfolgen in Dateien ermöglicht der Befehl findstr
die Suche nach übereinstimmenden Zeichenfolgen in Dateien, Verzeichnissen und Unterverzeichnissen.
Angenommen, Sie möchten alle Dateien in einem Verzeichnis finden, die ein bestimmtes Wort in ihrem Inhalt enthalten. Lassen Sie daher den /s
-Parameter die Drecksarbeit erledigen.
Führen Sie den unten stehenden Befehl aus, um (/s
) im aktuellen Verzeichnis und dessen Unterverzeichnissen (/s
) nach allen Dateien (*.*
) zu suchen, die die Zeichenkette system
enthalten, wobei die Groß- und Kleinschreibung ignoriert wird (-i
)
Beachten Sie, dass dieser Befehl nur nach Dateien sucht, die die Zeichenkette system
als ganzes Wort enthalten, nicht nach solchen, die Teil größerer Wörter sind, wie systematisch oder systematisieren.
Die unten stehende Ausgabe zeigt eine Liste von Dateinamen, jeweils einer pro Zeile, mit dem Namen jeder Datei, die die Zeichenkette „system“ enthält.

Durchsuchen von Zeichenketten mit dem Select-String
-Cmdlet
Bisher haben Sie gesehen, dass der findstr
-Befehl hervorragend zum Finden von Zeichenketten geeignet ist, aber das Select-String
-Cmdlet sollte nicht außer Acht gelassen werden. Dieses Cmdlet ist das Äquivalent zu grep
in Windows und ermöglicht es Ihnen, nach bestimmten Textmustern in Dateien und Zeichenketten zu suchen.
Das Select-String
-Cmdlet ist auf Effizienz ausgelegt, ermöglicht es Ihnen, schnell durch große Mengen von Text zu suchen, und unterstützt reguläre Ausdrücke (Regex). Dieses Cmdlet ermöglicht es Ihnen wiederum, nach noch komplexeren Mustern als findstr
zu suchen.
Um zu sehen, wie das Select-String
-Cmdlet funktioniert, befolgen Sie diese Schritte:
1. Öffnen Sie zuerst die Datei notes.txt, fügen Sie die folgenden Zeilen hinzu und speichern Sie die Änderungen.
Das Hinzufügen dieser Zeilen ist eine Vorbereitung darauf, wie das Select-String
-Cmdlet die Groß- und Kleinschreibung in den folgenden Schritten behandelt.
Apple
APPLE
ApplE
2. Führen Sie dann den folgenden Befehl aus, um nach dem String apple
in der Datei notes.txt
zu suchen.
Unten sind mehrere Zeilen, die den String ‚apple‘ enthalten, jedoch in verschiedenen Groß- und Kleinschreibungen, da das Select-String
-Cmdlet nicht zwischen Groß- und Kleinschreibung unterscheidet. Aber das Gute ist, dass Sie die übereinstimmenden Zeichenfolgen leicht erkennen und überprüfen können, da sie hervorgehoben sind.

? Vielleicht möchten Sie einfache Zeichenfolgenübereinstimmung anstelle von Regex-Übereinstimmung verwenden. Wenn ja, fügen Sie den Parameter
-SimpleMatch
wie unten gezeigt hinzu und machen Sie sich nie wieder Gedanken über die Regex-Syntax und Sonderzeichen.Select-String 'APPLE' "C:\\myfiles\\notes.txt" -SimpleMatch
3. Führen Sie nun den folgenden Befehl aus, um nach APPLE
in der Datei notes.txt
zu suchen, wobei die Groß- und Kleinschreibung aktiviert ist (-CaseSensitive
). Der Parameter -CaseSensitive
ist nützlich für die Suchgenauigkeit.
Wie Sie unten sehen können, wurde nur eine Übereinstimmung gefunden, die genau der Buchstabengroß- und -kleinschreibung entspricht, die Sie angegeben haben (APPLE).

4. Führen Sie abschließend den folgenden Befehl aus, um mit Regex nach dem Muster '\?'
(ein Fragezeichen) in allen Textdateien (*.txt
) im Verzeichnis $PSHOME\en-US
zu suchen. Mit Regex können Sie nach komplexeren Mustern suchen.
Wenn der Inhalt einer Datei ein Fragezeichen enthält, gibt der Befehl den vollständigen Pfad der Datei in der Konsole aus.

Verwenden von ripgrep (rg) als Grep-Äquivalent unter Windows
Rg ist ein Open-Source-Befehlszeilen-Dienstprogramm, das dazu dient, Dateien schnell mithilfe von Regex-Patterns zu durchsuchen. Wie andere Befehlszeilen-Dienstprogramme bietet rg viele Optionen und Funktionen zur Anpassung Ihrer Suchanfragen.
Aber im Gegensatz zu findstr
und dem Befehl Select-String
ist rg nicht standardmäßig in Ihrem Windows-Betriebssystem installiert.
Um rg als Grep-Äquivalent unter Windows zu verwenden:
1. Führen Sie den folgenden scoop
-Befehl aus, um ripgrep
auf Ihrem System zu installieren
. scoop install ripgrep

2. Führen Sie anschließend den folgenden rg
-Befehl aus, um die installierte Version von rg zu überprüfen.
Wie unten gezeigt, wird die Versionsnummer von rg angezeigt. Ab diesem Zeitpunkt können Sie rg
-Befehle ausführen, um nach Zeichenketten zu suchen.

3. Führen Sie den folgenden rg
-Befehl aus, um nach der Zeichenkette apple
in der Datei notes.txt
zu suchen.
Die Ausgabe zeigt alle Zeilen in der Datei notes.txt an, die die Zeichenkette apple enthalten, wie unten gezeigt.
Bemerken Sie, dass die Ausgabe der Ausgabe des Befehls Select-String
ähnelt. Statt jedoch die Übereinstimmung hervorzuheben, ändert rg
die Farbe der übereinstimmenden Zeichenkette und der Zeilennummer, um sie schnell zu unterscheiden.

4. Führen Sie nun den folgenden Befehl mit Regex aus, um nach Zeichenketten in der Datei notes.txt
zu suchen.
Die unten stehende Regex verwendet Wortgrenzen (`\b`) und sagt `rg`, dass es nach Zeilen mit Zeichenketten suchen soll, die mit ’s‘ beginnen und mit ‚e‘ enden (`s\w+e`).

Filtern von Suchanfragen nach bestimmten Dateitypen
Vielleicht ist Ihnen das Verzeichnis, in dem sich die gesuchte Datei befindet, wichtig, aber nicht der Dateiname. In solchen Fällen kann die Suche nach dem Inhalt der Datei und gleichzeitiges Filtern der Suche nach Dateityp Ihre beste Option sein.
Das Filtern der Suche nach bestimmten Dateitypen kann nützlich sein, wenn Sie nur bestimmte Dateitypen durchsuchen möchten. Oder wenn Sie bestimmte Dateitypen von der Suche ausschließen möchten.
Um die Suche auf bestimmte Dateitypen zu filtern, verwendet die Option --type
folgenden Trick:
1. Führen Sie den folgenden rg
-Befehl aus, um die Zeichenkette apple
in allen Textdateien (--type txt
) im Verzeichnis C:\\myfiles
zu suchen.
Die Option --type
nimmt einen Dateityp als Argument an, der dem Befehl rg
mitteilt, nur Dateien zu durchsuchen, die dem angegebenen Dateityp entsprechen.
Die Ausgabe unten zeigt die Zeile mit der Zeichenkette ‚apple‚ und den zugehörigen Dateinamen (notes.txt).

2. Erstellen Sie als Nächstes eine XML-Datei namens notes.xml und füllen Sie den untenstehenden Code aus. Diese XML-Datei dient lediglich als Vorbereitung, um zu zeigen, wie Platzhalter-Suchen funktionieren.
3. Führen Sie nun den folgenden Befehl aus, um nach dem String apple
in allen (*.
) zu suchen. Dieser Befehl sucht nur nach txt
und xml
Dateien, wie angegeben (-g
).
Nach Voreinstellung ist rg
Groß- und Kleinschreibungssensitiv. Als Ergebnis wird nur die Zeile angezeigt, die den genauen String ‚apple‘ enthält, und die zugehörige Datei.

4. Führen Sie abschließend den folgenden Befehl aus, wie Sie es in Schritt drei getan haben, um nach dem String apple
in allen Dateien (*.
) zu suchen, die eine txt
oder xml
Erweiterung haben. Aber dieses Mal fügen Sie die Option -i
hinzu, die rg
mitteilt, auf die Buchstaben zu verzichten.

Schlussfolgerung
In diesem Tutorial haben Sie viele Grep-Äquivalente in Windows gelernt, um Strings wörtlich und mittels Regexes zu durchsuchen. Sie haben die Kraft dieser Grep-Äquivalente mit einer Vielzahl von Optionen und Parametern freigeschaltet, um die Suche anzupassen und nach bestimmten Dateitypen zu filtern.
Zu diesem Zeitpunkt sollten Sie zuversichtlich sein, Probleme zu debuggen, Probleme zu identifizieren und in großen Textdateisätzen zu suchen.
Warum setzen Sie Ihre neuen Fähigkeiten nicht gleich in die Praxis um, indem Sie mit Regexes üben und Ihre Suchanfragen anpassen?
Source:
https://adamtheautomator.com/grep-equivalents-in-windows/