GNU/Linux >> LINUX-Kenntnisse >  >> Linux

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

Möchten Sie alle Dateien finden, die ein bestimmtes Wort oder eine bestimmte Textfolge auf Ihrem gesamten Linux-System oder einem bestimmten Verzeichnis enthalten? In diesem Artikel erfahren Sie, wie Sie das tun. 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 grep-Mustersuchwerkzeugs, einem leistungsstarken, effizienten, zuverlässigen und beliebtesten Befehlszeilendienstprogramm 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 “ durch rekursives und aggressives Durchsuchen von ~/bin Verzeichnis.

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

Wo das -R Option sagt grep um alle Dateien unter jedem Verzeichnis rekursiv zu lesen, indem symbolischen Links nur gefolgt wird, wenn sie sich auf 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 den zu suchenden String (Muster) anzugeben.

Sie sollten den Befehl sudo verwenden, wenn Sie nach bestimmten Verzeichnissen oder Dateien suchen, für die Root-Berechtigungen erforderlich sind (es sei denn, Sie verwalten Ihr System mit dem Root-Konto).

 
$ sudo grep -Rw / -e 'check_root'	

Um Groß- und Kleinschreibung zu ignorieren, verwenden Sie das -i Option wie gezeigt:

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

Wenn Sie die genaue Zeile wissen möchten, in der die Textzeichenfolge vorhanden ist, fügen Sie -n hinzu Option.

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

Angenommen, es gibt mehrere Arten von Dateien in einem Verzeichnis, in dem Sie suchen möchten, können Sie auch die Art der zu durchsuchenden Dateien angeben, beispielsweise durch ihre Erweiterung, indem Sie den --include verwenden Option.

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

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

Außerdem ist es möglich, mit dem folgenden Befehl nach mehr als einem Muster zu suchen.

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

Das ist es! Wenn Sie einen anderen Befehlszeilentrick kennen, um Zeichenfolgen oder Wörter in Dateien zu finden, teilen Sie uns dies mit oder stellen Sie Fragen zu diesem Thema, verwenden Sie das Kommentarformular unten.


Linux
  1. Wie suche ich in bestimmten Dateien, die einem Muster entsprechen?

  2. So finden und löschen Sie leere Verzeichnisse und Dateien in Unix

  3. Wie man alle Dateien und Verzeichnisse rekursiv auflistet

  4. Wie finde ich unter Linux alle Dateien, die bestimmten Text enthalten?

  5. rekursives grep:Bestimmte Verzeichnisse ausschließen

So verwenden Sie sed zum Suchen und Ersetzen von Zeichenfolgen in Dateien

So finden Sie eine Zeichenfolge in einer Datei unter Linux

So finden Sie Dateien, die eine bestimmte Textzeichenfolge in Linux enthalten

So suchen und ersetzen Sie Text, Wort oder Zeichenfolge in einer Datei

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach

So führen Sie eine Grep-Suche für alle Dateien und in allen Verzeichnissen durch