¿Cómo buscar cadenas dentro de archivos en una carpeta?

88

¿Hay alguna utilidad para realizar búsquedas de una cadena dentro de archivos ASCII para evitar búsquedas en la línea de comandos?

¿Cómo hacer una búsqueda en línea de comandos, por ejemplo para la cadena "test" dentro de todos los archivos en el directorio /var/x/ ?

    
pregunta Nuno 09.10.2012 - 10:33

7 respuestas

71

Puedes usar searchmonkey. La herramienta está disponible en los repositorios, por lo que puede simplemente

sudo apt-get install searchmonkey

Por otro lado, la búsqueda de línea de comando con grep está realmente destinada para eso ...

Aquí hay una captura de pantalla de searchmonkey

    
respondido por el alci 09.10.2012 - 10:41
140

Supongo que su primera pregunta es sobre una alternativa de GUI al comando grep . No puedo ayudarte con eso, siempre encuentro que la línea de comando es muy efectiva.

En cuanto a la línea de comando, prueba

grep "test" /var/x/*

Si desea realizar búsquedas recursivas (es decir, no solo en /var/x/ , sino también en subdirectorios de las mismas), haga

grep -R "test" /var/x/

Para evitar agotar los archivos que grep cree que son binarios, use la opción -I :

grep -I "test" /var/x/

Si grep cree que un archivo es binario (basado en los primeros pocos bytes del archivo), supondrá que no coincide en lugar de recorrer todo el archivo.

    
respondido por el January 09.10.2012 - 10:46
16

Puedes usar regexxer es una excelente herramienta de búsqueda / reemplazo de GUI para expresiones regulares.

puede descargar por:

sudo apt-get install regexxer

    
respondido por el user61928 09.10.2012 - 12:57
5

Pruebe Recoll, la mejor interfaz gráfica de usuario que he usado. Para instalar recoll en todas las versiones actuales de Ubuntu, abra la terminal y escriba:

sudo apt install recoll

Necesita algún tiempo para indexar los archivos primero (puede definir la ruta de la lista negra o las extensiones o el mimo).

    
respondido por el user244846 05.02.2014 - 12:28
3

Puede usar el comando grep desde la terminal:

grep -r string *

Este comando encontrará todas las apariciones de "cadena" en todos los archivos debajo del directorio actual (o subdirectorios).

Para archivos ocultos, puede usar:

grep -r string ..

    
respondido por el inquisitive 16.04.2015 - 11:58
2

Desafortunadamente, grep realiza un trabajo muy pobre buscando dentro de archivos Word (.doc), pero puede convertir la salida catdoc en grep. No soy programador, pero este pequeño script funciona bien para mí:

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

¡Todas las mejoras y sugerencias son bienvenidas!

    
respondido por el Ralph 26.01.2013 - 15:28
1

Acabo de lanzar una herramienta simple para hacer el trabajo. Pensado principalmente para el desarrollador de software, tiene la característica (¿única?) De abrir varios archivos en la misma ventana. Presenta los resultados en el navegador usando el editor Ace (¡recomendado!) O html textarea. Es una herramienta basada en Java, por lo que se ejecuta en Windows y en Linux.

¡Compruébalo!

enlace

    
respondido por el Alejadro Xalabarder 01.11.2016 - 22:35

Lea otras preguntas en las etiquetas