A continuación, en cada ejemplo, intentaremos trabajar con dos archivos de demostración iguales a los siguientes:

$ cat archivo_demo1

ESTA ES LA PRIMER LINEA EN MAYUSCULAS DE ESTE ARCHIVO
esta es la primer linea en minusculas de este archivo
Esta Es La Primer Linea Con El Primer Caracter De Cada Palabra Con Mayuscula

Hay dos lineas vacias sobre esta
Y esta es la ultima linea


$ cp /tmp/archivo_demo1 /tmp/archivo_demo2


Uso básico, buscar una cadena en un archivo

$ grep “esta” archivo_demo1
esta es la primer linea en minusculas de este archivo
Hay dos lineas vacias sobre esta
Y esta es la ultima linea



Buscar una cadena en varios archivos

$ grep “esta” archivo_demo*
archivo_demo1:esta es la primer linea en minusculas de este archivo
archivo_demo1:Hay dos lineas vacias sobre esta
archivo_demo1:Y esta es la ultima linea
archivo_demo2:esta es la primer linea en minusculas de este archivo
archivo_demo2:Hay dos lineas vacias sobre esta
archivo_demo2:Y esta es la ultima linea


Buscar sin coincidencia entre mayúsculas y minúsculas (uso del argumento -i)

$ grep -i “esta” archivo_demo1
ESTA ES LA PRIMER LINEA EN MAYUSCULAS DE ESTE ARCHIVO
esta es la primer linea en minusculas de este archivo
Esta Es La Primer Linea Con El Primer Caracter De Cada Palabra Con Mayuscula
Hay dos lineas vacias sobre esta
Y esta es la ultima linea


Buscar expresiones regulares

$ grep “esta.*linea” archivo_demo1
esta es la primer linea en minusculas de este archivo
Y esta es la ultima linea


En este ejemplo buscamos aquellas líneas que contienen la palabra “esta” y luego de cualquier texto (*) continúan con “linea”. Para más operadores de expresiones regulares se recomienda leer la documentación del grep.

Buscar palabras completas (excluir subcadenas) (uso del argumento -w)

$ grep -iw “de” archivo_demo1


Buscar N líneas luego de la coincidencia

$ grep -A2 “ESTA” archivo_demo1
ESTA ES LA PRIMER LINEA EN MAYUSCULAS DE ESTE ARCHIVO
esta es la primer linea en minusculas de este archivo
Esta Es La Primer Linea Con El Primer Caracter De Cada Palabra Con Mayuscula
$grep -A1 “ESTA” archivo_demo1
ESTA ES LA PRIMER LINEA EN MAYUSCULAS DE ESTE ARCHIVO
esta es la primer linea en minusculas de este archivo


Buscar N líneas antes de la coincidencia

$ grep -B1 “ultima” archivo_demo1
Hay dos lineas vacias sobre esta
Y esta es la ultima linea


Buscar N líneas alrededor de la coincidencia

$ grep -C1 “minusculas” archivo_demo1
ESTA ES LA PRIMER LINEA EN MAYUSCULAS DE ESTE ARCHIVO
esta es la primer linea en minusculas de este archivo
Esta Es La Primer Linea Con El Primer Caracter De Cada Palabra Con Mayuscula


Resaltar los resultados
Es necesario setear las variables de entorno GREP_OPTIONS y GREP_COLOR

$ export GREP_OPTIONS=’–color=auto’ GREP_COLOR=’100;8′


Buscar en archivos recursivamente (uso del argumento -r)
Cuando necesitas buscar una cadena en los archivos del directorio actual y sus subdirectorios. El siguiente ejemplo buscaría la palabra “auto” en todos los archivos del directorio actual y sus subdirectorios.

$ grep -r “auto” *


Buscar no coincidencias (uso del argumento -v)

$ grep -iv “primer” archivo_demo1

Hay dos lineas vacias sobre esta
Y esta es la ultima linea


Mostrar las lineas de varias no coincidencias (uso del argumento -v y los argumentos -e)

$ cat archivo_demo3
a
b
c
d

$ grep -v -e “a” -e “b” -e “c” archivo_demo3
d


Contar el número de ocurrencias (uso del argumento -c)

$ grep -c “esta” archivo_demo1
3
$ grep -ic “esta” archivo_demo1
5


Mostrar solo los nombres de los archivos los cuales contienen coincidencias (uso del argumento -l)

$ grep -l “esta” archivo_demo*
archivo_demo1
archivo_demo2


Mostrar solo la cadena buscada (uso del argumento -o)
Por defecto el comando grep muesrta la línea completa de la cadena o patrón dado, pero si solo quieres mostrar dicha cadena o patrón puedes utilizar el argumento -o.

Nota la diferencia en el ejemplo:

$ grep “es.*linea” archivo_demo1
esta es la primer linea en minusculas de este archivo
Y esta es la ultima linea
$
$ grep -o “es.*linea” archivo_demo1
esta es la primer linea
esta es la ultima linea


Mostrar la posición en el archivo de la conicidencia (uso de argumento -b)

$ grep -bo “es.*linea” archivo_demo1
54:esta es la primer linea
222:esta es la ultima linea
$
$ grep -bo “es.*linea” archivo_demo*
archivo_demo1:54:esta es la primer linea
archivo_demo1:222:esta es la ultima linea
archivo_demo2:54:esta es la primer linea
archivo_demo2:222:esta es la ultima linea


Mostrar la fila en el archivo de la conicidencia (uso de argumento -n)

$ grep -no “es.*linea” archivo_demo*
archivo_demo1:2:esta es la primer linea
archivo_demo1:7:esta es la ultima linea
archivo_demo2:2:esta es la primer linea
archivo_demo2:7:esta es la ultima linea

 

La fuente de este artículo es: http://luauf.com/2009/05/04/varios-ejemplos-de-uso-del-comando-grep/


DMC Firewall is developed by Dean Marshall Consultancy Ltd