Como usar grep para encontrar una palabra o texto

Una de las cosas que me encanta de los Sistemas Operativos basados en Linux es que podemos de hacer miles de cosas desde una terminal, yo uso actualmente Ubuntu 12.04 y simplemente presiono Ctrl+Alt+T y ya tenemos nuestra ventana del Terminal para ejecutar comandos y todo lo que queramos.

Hoy vamos a ver como usar el comando grep para buscar una palabra o un texto dentro de los archivos de un directorio o incluso dentro de los subdirectorios de este.

La sintaxis del comando grep es:

grep “texto a buscar” directorio-ruta

Ejemplos:

grep "prueba" /home/usuario/prueba/*.*
grep -r "prueba" /home/usuario/prueba/
grep -l "prueba" /home/usuario/prueba/*.*


En el primer ejemplo buscaremos la palabra "prueba" en el directorio prueba dentro de todos los archivos del directorio, podríamos delimitar la búsqueda por ejemplo buscando solo dentro de los archivos de texto poniendo *.txt en vez de *.* o buscando en los archivos de "Word" poniendo *.doc, etc...

En el segundo ejemplo al añadirle -r le estamos diciendo que queremos buscar la palabra "prueba" en todos los archivos y subdirectorios del directorio prueba.

En el tercer ejemplo al añadirle el -l el resultado nos mostrará solo el nombre del fichero que contiene la palabra prueba.

Otro posibilidad es usar -e para añadir varias palabras o cadenas de texto:

grep -r -e “prueba” -e “grep” /home/usuario/prueba/

Una opción más y para mi imprescindible, sobretodo cuando encontramos muchos resultados es hacer que nos cree un archivo con los resultados. Simplemente tenemos que añadir ">> nombrefichero.txt y nos generará un archivo de texto con los resultados. Ejemplo:

grep -r "prueba" /home/usuario/prueba/ >> prueba.txt

Fuentes: felinfo y paraisolinux

1 comentario: