Sie können das grep
Tool verwenden, um den aktuellen Ordner rekursiv mit -r
Parametern zu durchsuchen , z.
grep -r "pattern" .
Hinweis: -r
- Durchsuchen Sie Unterverzeichnisse rekursiv.
Zum Durchsuchen bestimmter Dateien können Sie eine Globbing-Syntax verwenden, z.
grep "class foo" **/*.c
Hinweis: Mit der Globbing-Option ( **
) werden alle Dateien mit einer bestimmten Erweiterung oder einem bestimmten Muster rekursiv durchsucht. Um diese Syntax zu aktivieren, führen: shopt -s globstar
. Sie können auch **/*.*
für alle Dateien (außer versteckt und ohne Erweiterung) oder jedes andere Muster verwenden.
Wenn Sie den Fehler haben, dass Ihr Argument zu lang ist, können Sie die Suche eingrenzen oder find
stattdessen die folgende Syntax verwenden:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Alternativ verwenden ripgrep
.
Wenn Sie an größeren Projekten oder großen Dateien arbeiten, sollten Sie ripgrep
stattdessen Folgendes verwenden:
rg "pattern" .
Überprüfen Sie die Dokumente, Installationsschritte oder den Quellcode auf der GitHub-Projektseite .
Es ist viel schneller als jedes anderes Tool wie GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
oder ähnlich, da es auf der Spitze gebaut Rust Regex - Engine , die endlichen Automaten verwendet, SIMD und aggressive wörtliche Optimierungen sehr schnell zu machen suchen.
Es werden in .gitignore
Dateien angegebene Ignoriermuster unterstützt , sodass ein einzelner Dateipfad gleichzeitig mit mehreren Glob-Mustern abgeglichen werden kann.
Sie können die allgemeinen Parameter verwenden, z.
-i
- Unempfindliche Suche.
-I
- Ignorieren Sie die Binärdateien.
-w
- Suche nach ganzen Wörtern (im Gegensatz zur Teilwortübereinstimmung).
-n
- Zeigen Sie die Zeile Ihres Spiels.
-C
/ --context
(eg -C5
) - Vergrößert den Kontext, sodass Sie den umgebenden Code sehen.
--color=auto
- Markieren Sie den passenden Text.
-H
- Zeigt den Dateinamen an, in dem sich der Text befindet.
-c
- Zeigt die Anzahl der übereinstimmenden Zeilen an. Kombinierbar mit -H
.