Suchen aller Dateien, die einen bestimmten Text enthalten
Wahrscheinlich wissen Sie bereits, wie Sie den Befehl grep verwenden, um unter Linux nach einer Textzeichenfolge in einer Datei zu suchen. Aber was ist, wenn Sie eine Liste von Dateien abrufen möchten, die die Textzeichenfolge enthalten? Dies ist eine Aufgabe, die sich am besten für grep oder den Befehl find eignet. Wie das geht, zeigen wir Ihnen in dieser Anleitung.
In diesem Tutorial lernen Sie:
- So verwenden Sie
die Befehle grepundfind,um alle Dateien zu finden, die einen bestimmten Text enthalten
Suchen aller Dateien, die einen bestimmten Text enthalten
Suchen Sie mit dem Befehl grep nach bestimmtem Text
Ohne Zweifel ist grep der beste Befehl, um eine Datei (oder Dateien) nach einem bestimmten Text zu durchsuchen. Standardmäßig werden alle Zeilen einer Datei zurückgegeben, die eine bestimmte Zeichenkette enthalten. Dieses Verhalten kann mit der Option -l geändert werden, die grep anweist, nur die Dateinamen zurückzugeben, die den angegebenen Text enthalten.
Sehen wir uns das nun in Aktion an. Verwenden Sie die folgende Syntax im Terminal, und geben Sie alle Dateien an, die Sie durchsuchen möchten, indem Sie ihren Pfad und Namen an das Ende des Befehls anhängen.
grep -l example document1.txt document2.txt
Verwenden von grep, um zu ermitteln, welche Dateien den angegebenen Text enthalten
Die Ausgabe von grep zeigt uns, dass unser Suchbegriff "example" nur in der document1.txt Datei existiert. Vergessen Sie auch nicht, dass Platzhalter erlaubt sind und dazu beitragen können, grep effizienter zu machen:
grep -l example *.txt
Aber seien wir realistisch. Wenn Sie nur ein paar Dateien durchsuchen, hätten Sie diese Anleitung wahrscheinlich nicht gelesen. Höchstwahrscheinlich haben Sie ein Verzeichnis (oder mehrere Verzeichnisse) voller Dateien, die Sie durchsuchen müssen. Das ist für grep kein Problem, solange Sie die Option -r (rekursiv) in den Befehl aufnehmen.
grep -lr example /path/to/directory1/*.txt /path/to/directory2
Um das aktuelle Verzeichnis und alle Unterverzeichnisse zu durchsuchen, lassen Sie den Pfad am Ende des Befehls weg.
grep -lr example
Verwenden von grep zum rekursiven Suchen
Erwägen Sie auch die Verwendung der Option -i, die die Groß-/Kleinschreibung Ihrer Suchzeichenfolge unempfindlich macht. Um mehr über die restlichen Funktionen des grep-Befehls im Detail zu erfahren, lesen Sie unsere Einführung in grep. Die Manpage enthält auch hilfreiche Informationen:
grep man
Suche nach bestimmtem Text mit dem Befehl "Suchen"
Wenn Sie den Befehl find verwenden möchten, können Sie die folgende Befehlssyntax verwenden:
find /path/to/search -type f -exec grep -l "your-search-string" {} \;
Verwenden des Befehls find zum Suchen nach Dateien, die die Textzeichenfolge enthalten
Fügen Sie erneut -i zum grep-Teil des Befehls hinzu, um die Groß-/Kleinschreibung zu ignorieren. Die Methoden find und grep funktionieren beide gut. Verwenden Sie das, was Sie bevorzugen.
Schlussfolgerung
In dieser Anleitung haben wir gesehen, wie Sie alle Dateien finden, die unter Linux einen bestimmten Text enthalten. Wir lernten zwei Befehlszeilenmethoden, um die Aufgabe zu erfüllen, aber es gibt noch mehr.



