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

Verwenden Sie einen Index, um grep schneller zu machen?

Sie könnten Ihre Codebasis auf eine RAM-Disk kopieren.


Volltextindizierung

Es gibt Tools wie recoll, swish-e und sphinx, aber Sie müssen prüfen, ob sie die Art von Suchkriterien unterstützen, die Sie benötigen.

Erinnern

Recoll ist ein persönliches Volltextsuchwerkzeug für Unix/Linux.

Swish-e

Swish-e ist ein schnelles, flexibles und kostenloses Open-Source-System zum Indizieren von Sammlungen von Webseiten oder anderen Dateien.

Sphinx

Mit Sphinx können Sie schnell und einfach entweder in einer SQL-Datenbank, in einem NoSQL-Speicher oder nur in Dateien gespeicherte Daten indizieren und durchsuchen

grep

Ich bin überrascht, dass grep so langsam ist, wie Sie es beschreiben. Können Sie die Anzahl der zu durchsuchenden Dateien reduzieren? Wenn ich zum Beispiel nur die Quelldateien nach einer ausführbaren Datei (von vielen in einem Projekt) durchsuchen muss, füttere ich grep die Namen von einem Befehl, der die Quelldateien für dieses Programm auflistet:

grep expression `sources myprogram`

sources ist ein Programm, das für meine Entwicklungsumgebung spezifisch ist, aber Sie haben vielleicht etwas Äquivalentes (oder können es konstruieren).

Ich gehe davon aus, dass Sie offensichtliche Techniken wie

ausprobiert haben
find /foo/myproject -name "*.c" -exec fgrep -l searchtext

Ich habe einen Vorschlag gelesen, dass -P Option des aktuellen grep kann die Suche erheblich beschleunigen.


was ist mit cscope, passt das zu deinen schuhen?

Ermöglicht die Suche nach Code für:

  • alle Verweise auf ein Symbol
  • globale Definitionen
  • Funktionen, die von einer Funktion aufgerufen werden
  • Funktionen, die eine Funktion aufrufen
  • Textzeichenfolge
  • reguläres Ausdrucksmuster
  • eine Datei
  • Dateien einschließlich einer Datei

Linux
  1. Wie sortiert man Dateien nach ihren Berechtigungen mit Ls?

  2. Letztes Element in einer Zeile mit Grep finden?

  3. Wie finde ich mehrere Zeichenfolgen in Dateien?

  4. So übertragen Sie Dateien sicher mit SCP

  5. Ausführbare Dateien mit ls und grep finden

Grep-Befehl in Linux (Text in Dateien suchen)

So führen Sie eine Mustersuche in Dateien mit Grep durch

So benennen Sie Dateien über die Befehlszeile in Linux um

So löschen Sie leere Zeilen in Dateien mit Grep, Sed und Awk

Finden Sie Text in Dateien unter Linux mit grep

Übertragen Sie Dateien mit WinSCP