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

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

Sie können ack verwenden. Es ist wie grep für Quellcode. Sie können damit Ihr gesamtes Dateisystem scannen.

Mach einfach:

ack 'text-to-find-here'

In Ihrem Stammverzeichnis.

Sie können auch reguläre Ausdrücke verwenden, den Dateityp angeben usw.

AKTUALISIEREN

Ich habe gerade The Silver Searcher entdeckt, das wie ack ist, aber 3-5x schneller als es und sogar Muster von einem .gitignore ignoriert Datei.


Gehen Sie wie folgt vor:

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r oder -R ist rekursiv,
  • -n Zeilennummer ist, und
  • -w steht für Übereinstimmung mit dem ganzen Wort.
  • -l (Kleinbuchstabe L) kann hinzugefügt werden, um nur den Dateinamen übereinstimmender Dateien anzugeben.
  • -e ist das während der Suche verwendete Muster

Zusammen mit diesen --exclude , --include , --exclude-dir Flags könnten für eine effiziente Suche verwendet werden:

  • Dadurch werden nur die Dateien mit der Erweiterung .c oder .h durchsucht:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  • Dies schließt die Suche nach allen Dateien aus, die mit der Erweiterung .o enden:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
  • Für Verzeichnisse ist es möglich, ein oder mehrere Verzeichnisse mit dem --exclude-dir auszuschließen Parameter. Beispielsweise werden dadurch die Verzeichnisse dir1/, dir2/ und alle, die mit *.dst/:
  • übereinstimmen, ausgeschlossen
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

Das funktioniert sehr gut für mich, um fast den gleichen Zweck wie Sie zu erreichen.

Weitere Optionen finden Sie unter man grep .


Verwenden Sie grep -ilR :

grep -Ril "text-to-find-here" /
  • i steht für Groß-/Kleinschreibung ignorieren (in Ihrem Fall optional).
  • R steht für rekursiv.
  • l steht für "den Dateinamen anzeigen, nicht das Ergebnis selbst".
  • / steht für das Starten an der Wurzel Ihrer Maschine.

Linux
  1. Wie finde ich alle Dateien, die keine Textzeichenfolge enthalten?

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

  3. So finden Sie alle Sparse-Dateien in Linux

  4. Wie man alle oder bestimmte Dateien in Linux gzippt

  5. Linux-Befehl:Wie findet man nur Textdateien?

So finden Sie Dateien unter Linux

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

Grep-Befehl in Linux (Text in Dateien suchen)

So finden und löschen Sie Dateien, die einen bestimmten Text in ihrem Namen in Linux enthalten

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

Finden Sie Text in Dateien unter Linux mit grep