GNU/Linux >> Tutoriales Linux >  >> Linux

¿Usando un índice para hacer grep más rápido?

Podrías copiar tu base de código en un disco RAM.


Indización de texto completo

Hay herramientas como recordar, swish-e y sphinx, pero tendrías que comprobar si son compatibles con el tipo de criterio de búsqueda que necesitas.

Recordar

Recoll es una herramienta personal de búsqueda de texto completo para Unix/Linux.

Swish-e

Swish-e es un sistema de código abierto rápido, flexible y gratuito para indexar colecciones de páginas web u otros archivos.

Esfinge

Sphinx le permite indexar por lotes y buscar datos almacenados en una base de datos SQL, almacenamiento NoSQL o simplemente archivos de forma rápida y sencilla

grep

Me sorprende que grep sea tan lento como lo describe, ¿puede reducir la cantidad de archivos que se buscan? Por ejemplo, cuando solo necesito buscar los archivos de origen para un ejecutable (de muchos en un proyecto), introduzco grep en los nombres de un comando que enumera los archivos de origen para ese programa:

grep expression `sources myprogram`

sources es un programa específico para mi entorno de desarrollo, pero es posible que tenga (o pueda construir) algo equivalente.

Supongo que has probado técnicas obvias como

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

He leído una sugerencia de que el -P opción de grep actual puede acelerar significativamente las búsquedas.


¿Qué hay de cscope? ¿Esto combina con tus zapatos?

Permite buscar código para:

  • todas las referencias a un símbolo
  • definiciones globales
  • funciones llamadas por una función
  • funciones llamando a una función
  • cadena de texto
  • patrón de expresión regular
  • un archivo
  • archivos que incluyen un archivo

Linux
  1. ¿Cómo hacer Grep en archivos PDF?

  2. ¿Hacer que `rm` se mueva a la papelera?

  3. ¿Cómo cambiar el nombre de varios archivos usando Buscar?

  4. ¿Encontrar el último elemento en una línea usando Grep?

  5. Usando rsync para sincronizar archivos

Comando Grep en Linux (Buscar texto en archivos)

Cómo realizar una búsqueda de patrones en archivos usando Grep

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo eliminar líneas vacías en archivos usando Grep, Sed y Awk

Encuentra texto en archivos en Linux usando grep

Transferir archivos usando WinSCP