Usar grep para buscar texto dentro de archivos

Grep es uno de los comandos mas útiles que conozco y al menos al que seguramente tu le podrás sacar mucho provecho. A mi como programador me sirve mucho. También lo uso cuando voy a editar themes de wordpress. El uso mas básico que se le puede dar es buscar texto dentro de uno o mas archivos. Ej: quiero buscar la palabra "perro" dentro de todos los archivos txt que tengo en un directorio. Haria algo así:

grep "perro" /home/miusuario/documentos/*.txt

Pero por lo general cuando lo uso me interesa mas hacer busquedas recursivas. O sea no solo buscar en ese directorio sino en todos los directorios dentro de un directorio. Ademas no busco solo en archivos txt sino que por le general me interesa la busqueda en todo tipo de archivos. Entonces haria algo asi:

grep -r "perro" /home/miusuario/documentos/

Otra opcion es buscar varias cadenas. Ej: quiero saber en donde estan las lineas que dicen "perro" y "gato", seria asi:

grep -r -e "perro" -e "gato" /home/miusuario/documentos/

Algunas otras opciones interesantes son:

-c En lugar de imprimir las líneas que coinciden, muestra el número de líneas que coinciden.
-e PATRON nos permite especificar varios patrones de búsqueda o proteger aquellos patrones de búsqueda que comienzan con el signo -.
-r busca recursivamente dentro de todos los subdirectorios del directorio actual.
-v nos muestra las líneas que no coinciden con el patrón buscado.
-i ignora la distinción entre mayúsculas y minúsculas.
-n Numera las líneas en la salida.
-E nos permite usar expresiones regulares. Equivalente a usar egrep.
-o le indica a grep que nos muestre sólo la parte de la línea que coincide con el patrón.
-f ARCHIVO extrae los patrones del archivo que especifiquemos. Los patrones del archivo deben ir uno por línea.
-H nos imprime el nombre del archivo con cada coincidencia.
-w fuerza la busqueda a coincidir con la palabra exacta

Por supuesto puedes usar toda una combinación de esas opciones. Mira estos 10 ejemplos de uso de grep.

Espero que les sea util

Se bueno y comparte!
Publicado el Categorías Tutoriales

Acerca de Perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

Comenta!

23 Comentarios activo "Usar grep para buscar texto dentro de archivos"

avatar
Ordenar por:   Nuevos | Viejos
eVeR
eVeR

muy bueno! Es uno de los comandos mas poderosos de los UNIX que normalmente estamos subestimando. Gracias por la data

trackback

[...] Usar grep para buscar texto dentro de archivos [...]

Cristian
Cristian

Si me ayudaste mucho. Pero tengo duda en algo ¿si quiero en una misma linea buscar dos patrones distintos y luego poner otro patron del q se deben buscar las no coincidencias. Me explico serian tres patrones distintos pero del ultimo se buscan las no coincidenicas pero todo va en unas misma linea de comando, cómo lo hago? Millon Gracias si me ayudan.

Cecilia

Lo que no entiendo es donde pongo el comando 'grep'. Yo estoy utilizando el HTMLKit para mis páginas web y FilleZilla para FTP y quiero buscar una palabra en todas las paginas, ...y son miles!
como hago?
Graciass

AnzOne

Aunque es seguro que ya encontraste respuesta en 3 años, el articulo no describe donde colocar el comando así que lo escribo como por si alguien más se pregunta lo mismo: En la Terminal. Si estas en Ubuntu alt+f2 y se coloca gnome-terminal. O se puede encontrar en Accesorios. Recomiendo utilizar Terminator una maravilla...

Alejandro
Alejandro

Mañana dia 8 de febrero tengo un examen y esto me caia jeje PORFIN LO COMPRENDO! Dios!

GRACIAS ;)

trackback

[...] grep1 [...]

trackback

[...] un tiempo les hice un post de como buscar un texto dentro de un archivo usado grep pero ahora me encontre en el blog javarevisted varios usos practicos mas que le podemos [...]

aj.com
aj.com

Me gustaria agregar un ejemplo que ademas de hacer una busqueda de palabras en archivo las podemos numerar:

grep -i -r -H -e "word1" -e "word2" File.log | wc -l

Si se fijan en este ejemplo con no hacemos distincion entre mayusculas y minusculas, ademas al finl el pipe y wc -l indican que se numeren cada una de las lineas que coincidan con la busqueda.

Devaray
Devaray

espectacular

Mayben
Mayben

buenas! necesito saber mostrar las lineas que contengan un par de letras 'e' .. me seria de gran ayuda. gracias

sefsinalas

dos 2 seguidas? usa el comando de arriba, 2 e en cualquier posicion? no se como se haria

Mario Vial
Mario Vial

Gracias!

Juan Sebastián Leal Díaz
Juan Sebastián Leal Díaz

Muy bien, gracias!

Benjamín
Benjamín

La raja! Me salvaste el día!
Gracias

Antonio
Antonio

esto está muy bien pero necesito la ruta de la carpeta donde están los archivos en los que buscar el texto...

Antonio
Antonio

esto está muy bien pero necesito la ruta de la carpeta donde están los archivos en los que buscar el texto...

Liher Sanchez
Liher Sanchez

Muy bueno, muchas gracias, me va a ser muy util para hacer unas modificaciones en mi tema de wordpress, mil gracias

AnzOne

Gracias, un comando demasiado útil... y pensar que este tipo de procesos en winbug necesita tantas cosas. Poder GNU/Linux.

Ángel de la Muerte
Ángel de la Muerte

Muchas gracias. También yo lo uso con bastante frecuencia.

wpDiscuz