Website-Suche

So finden Sie eine bestimmte Zeichenfolge oder ein bestimmtes Wort in Dateien und Verzeichnissen


Möchten Sie alle Dateien auf Ihrem gesamten Linux-System oder in einem bestimmten Verzeichnis finden, die ein bestimmtes Wort oder eine bestimmte Textfolge enthalten? In diesem Artikel erfahren Sie, wie das geht. Sie erfahren, wie Sie Verzeichnisse rekursiv durchsuchen, um alle Dateien zu finden und aufzulisten, die eine bestimmte Textzeichenfolge enthalten.

Eine einfache Möglichkeit, dies herauszufinden, ist die Verwendung des Mustersuchtools grep. Dabei handelt es sich um ein leistungsstarkes, effizientes, zuverlässiges und beliebtestes Befehlszeilenprogramm zum Suchen von Mustern und Wörtern in Dateien oder Verzeichnissen auf Unix-ähnlichen Systemen.

Lesen Sie auch: 11 erweiterte Linux-„Grep“-Befehle für Zeichenklassen und Klammerausdrücke

Der folgende Befehl listet alle Dateien auf, die eine Zeile mit dem Text „check_root“ enthalten, indem das Verzeichnis ~/bin rekursiv und aggressiv durchsucht wird.

grep -Rw ~/bin/ -e 'check_root'

Wobei die Option -R grep anweist, alle Dateien in jedem Verzeichnis rekursiv zu lesen und symbolischen Links nur dann zu folgen, wenn sie sich in der Befehlszeile und der Option -w< befinden weist es an, nur die Zeilen auszuwählen, die Übereinstimmungen enthalten, die ganze Wörter bilden, und -e wird verwendet, um die zu durchsuchende Zeichenfolge (Muster) anzugeben.

Sie sollten den Befehl sudo verwenden, wenn Sie bestimmte Verzeichnisse oder Dateien durchsuchen, die Root-Berechtigungen erfordern (es sei denn, Sie verwalten Ihr System mit dem Root-Konto).

 
sudo grep -Rw / -e 'check_root'	

Um Groß-/Kleinschreibung zu ignorieren, verwenden Sie die Option -i wie gezeigt:

grep -Riw ~/bin/ -e 'check_root'

Wenn Sie die genaue Zeile wissen möchten, in der sich die Textzeichenfolge befindet, schließen Sie die Option -n ein.

grep -Rinw ~/bin/ -e 'check_root'

Angenommen, es gibt mehrere Dateitypen in einem Verzeichnis, in dem Sie suchen möchten, können Sie mit der Option --include auch den Typ der zu durchsuchenden Dateien angeben, beispielsweise anhand ihrer Erweiterung.

Dieses Beispiel weist grep an, nur alle .sh-Dateien zu durchsuchen.

grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

Darüber hinaus ist es mit dem folgenden Befehl möglich, nach mehr als einem Muster zu suchen.

grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

Das ist es! Wenn Sie einen anderen Befehlszeilentrick zum Auffinden von Zeichenfolgen oder Wörtern in Dateien kennen, teilen Sie ihn uns mit oder stellen Sie Fragen zu diesem Thema. Verwenden Sie dazu das Kommentarformular unten.