Buscar texto dentro de archivos desde terminal

Solapas principales

grep es una utilidad de la línea de comandos escrita originalmente para ser usada con el sistema operativo Unix.

Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para la expresión regular.

Su nombre deriva de un comando en el editor de texto ed que tiene la siguiente forma: g/re/p y significa «hacer una búsqueda global para las líneas que encajen con la expresión regular (regular expression en inglés), e imprimirlas». Hay varios argumentos que se pueden usar con grep para modificar el comportamiento por defecto.

Existen otros retroacrónimos (incorrectos) para el nombre, entre ellos: General Regular Expression Parser (analizador general de expresiones regulares), General Regular Expression Print (imprimir expresión regular general), y Global Regular Expression Print (imprimir expresión regular global), éste último no tan lejano de la realidad.

Leer más

Vamos a poner un ejemplo concreto. Supongamos que queremos buscar todos los archivos que contengan la frase "fruteroloco" dentro tu carpeta /home/pakote/documentos.

El comando a ejecutar sería:
 

grep -lir "fruteroloco" "/home/pakote/documentos"


El parámetro -l le indica que imprima los nombres de archivos en los que se encuentre el texto solicitado. El parámetro -i, que ignore las mayúsculas y minúsculas. El parámetro -r, que busque en forma recursiva dentro de la ruta indicada.

En caso de que desees restringir la búsqueda a un determinado tipo de archivo, primero ir a la ruta donde grep tenga que realizar la búsqueda.

 

cd /home/pakote/documentos


Luego, escribe algo similar a esto adaptándolo según tus necesidades:
 

grep -lir "fruteroloco" *.pdf

 

 

Fuentes:

http://es.wikipedia.org/wiki/Grep

http://usemoslinux.blogspot.com/2010/08/como-buscar-texto-en-el-contenid...