GNU/Linux >> Linux Esercitazione >  >> Linux

Usare un indice per rendere grep più veloce?

Potresti copiare la tua base di codice su un disco RAM.


Indicizzazione full-text

Esistono strumenti come recoll, swish-e e sphinx, ma dovresti verificare se possono supportare il tipo di criteri di ricerca di cui hai bisogno.

Ricorda

Recoll è uno strumento di ricerca full text personale per Unix/Linux.

Swish-e

Swish-e è un sistema open source veloce, flessibile e gratuito per l'indicizzazione di raccolte di pagine Web o altri file.

Sfinge

Sphinx ti consente di eseguire l'indicizzazione e la ricerca in batch dei dati archiviati in un database SQL, nell'archiviazione NoSQL o solo nei file in modo rapido e semplice

grep

Sono sorpreso che grep sia lento come descrivi, puoi ridurre il numero di file da cercare? Ad esempio, quando ho solo bisogno di cercare nei file sorgente un eseguibile (tra i tanti in un progetto) fornisco a grep i nomi da un comando che elenca i file sorgente per quel programma:

grep expression `sources myprogram`

sources è un programma specifico per il mio ambiente di sviluppo ma potresti avere (o essere in grado di costruire) qualcosa di equivalente.

Suppongo che tu abbia provato tecniche ovvie come

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

Ho letto un suggerimento che il -P opzione dell'attuale grep può velocizzare notevolmente le ricerche.


che mi dici di cscope, si abbina alle tue scarpe?

Consente la ricerca del codice per:

  • tutti i riferimenti a un simbolo
  • definizioni globali
  • funzioni chiamate da una funzione
  • funzioni che chiamano una funzione
  • stringa di testo
  • modello di espressione regolare
  • un file
  • file che includono un file

Linux
  1. Come Grep nei file Pdf?

  2. Grep:Memoria esaurita?

  3. Come trovare più stringhe nei file??

  4. Usando grep per cercare al contrario

  5. Usando grep vs awk

Grep Command in Linux (Trova testo nei file)

Come eseguire la ricerca del modello nei file utilizzando Grep

Come rinominare i file usando la riga di comando in Linux

Come eliminare le righe vuote nei file utilizzando Grep, Sed e Awk

Trova testo nei file su Linux usando grep

Trasferisci file usando WinSCP