Zahlungsmethoden Abuse

Suchen von Dateien nach Inhalt unter Linux: ack und ripgrep

03.05.2023, 23:33

Die Verwendung der Dateisuche nach Inhalt in Linux kann den Zeit- und Arbeitsaufwand bei der Suche nach bestimmten Informationen in großen und komplexen Dateisystemen erheblich reduzieren.

Warum Sie Dateien nach Inhalt suchen müssen

Diese Suche kann besonders nützlich sein, wenn Sie Dateien finden möchten, die eine bestimmte Zeichenfolge oder ein Schlüsselwort enthalten, oder wenn Sie alle Dateien finden möchten, die einem bestimmten Muster oder Kriterium entsprechen.

Die Suche nach Dateien anhand ihres Inhalts kann für verschiedene Aufgaben verwendet werden, z. B. für die Suche nach:

  • bestimmten Text in großen Textdateien
  • Konfigurationsdateien und Skripte, die bestimmte Einstellungen oder Befehle enthalten
  • Dateien, die bestimmte Daten enthalten, wie z. B. Benutzernamen oder Telefonnummern
  • Dateien nach Inhaltstyp, z. B. die Suche nach allen Dateien, die JPEG-Bilder oder PDF-Dokumente enthalten.

Der allgemeine Zweck der Suche nach Dateien nach Inhalt ist es, die Arbeit mit dem Dateisystem zu erleichtern und die benötigten Informationen im Dateisystem zu finden.

ack

Beginnen wir mit dem Dienstprogramm ack. Es wurde 2005 als Alternative zu grep entwickelt und wurde schnell unter Entwicklern populär.

Es hat mehrere Vorteile gegenüber grep, darunter:

  • intelligentere Datei- und Ausnahmesuche. Ack sucht standardmäßig nur in Dateien, die sinnvoll sein könnten, und schließt zum Beispiel .svn- oder .git-Ordner aus. Und Sie können Ihre eigenen Regeln und Ausnahmen hinzufügen;
  • Ack durchsucht standardmäßig versteckte Dateien und Verzeichnisse;
  • Ack versucht nicht, überall zu suchen, auch nicht in Systemverzeichnissen, wie grep. Das bedeutet, dass Sie leicht Dateien finden können, die in Ihrem System versteckt sind.

Beispiele für die Verwendung von ack:

  • Finden Sie alle Dateien im aktuellen Ordner und seinen Unterordnern, die das Wort "test" enthalten : ack "test"
  • Dasselbe, aber ohne Dateien mit der Erweiterung .bak: ack "test" --ignore-file=match:/.bak$/
  • Suche alle Dateien im aktuellen Ordner, die die Zeichenkette "hello" enthalten, und gebe die ersten 2 Zeilen jeder Datei aus: ack "hello" --heading --max-count=2

ripgrep

Das zweite interessante Werkzeug ist ripgrep. Es ist ack in vielerlei Hinsicht ähnlich, verwendet aber einen schnelleren Suchalgorithmus, was es besonders für große Projekte nützlich macht.

Hier sind einige Beispiele:

  1. Suche nach allen Dateien im aktuellen Ordner und seinen Unterordnern, die das Wort "test" enthalten : rg "test"
  2. Dasselbe, aber ohne Dateien mit der Erweiterung .bak: rg "test" --glob "!*.bak"
  3. Finde alle Dateien im aktuellen Ordner, die die Zeichenkette "hello" enthalten und gib die ersten 2 Zeilen jeder Datei aus: rg "hello" --heading --max-columns=2

Zum Schluss sei noch fzf erwähnt, das nicht nur ein String-Finder wie ack und ripgrep ist. Fzf wird als Dienstprogramm verwendet, um Dateien, Ordner und Elemente in einer Liste zu finden. Ansonsten funktioniert es ähnlich wie ack/ripgrep, aber mit der zusätzlichen Möglichkeit, die Ergebnisse live zu filtern. Hier sind einige Beispiele:

  • Suche nach Dateien mit dem Anfangsbuchstaben F auf Ihrem Computer: locate F | fzf -m
  • Verlassen Sie den aktuellen Ordner und wechseln Sie in das gewünschte Verzeichnis: cd **<TAB> | fzf
  • Wählen Sie die SVN Revision und kopieren Sie die Nummer in die Zwischenablage: svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy

Wir hoffen, dass diese Werkzeuge Ihnen helfen, die benötigten Dateien und Zeichenfolgen schnell und effizient zu finden. Unabhängig davon, wofür Sie sich entscheiden, bieten sie alle erweiterte Suchfunktionen, die Ihre Arbeit erheblich beschleunigen können.