Desde Linux Isaac  

egrep: ejemplos del comando en GNU/Linux

egrep

grep es una de las herramientas más usadas en la línea de comandos de GNU/Linux. A pesar de ser una herramienta muy simple, permite realizar gran cantidad de operaciones. Se usa especialmente junto con las tuberías, para poder localizar puntos concretos en la salida de un comando previo, etc. Pero también existe una herramienta conocida como egrep que equivale a ejecutar grep con la opción -E.

La e proviene de “Extended regex”, que es lo que activa la opción -E y lo que tienes en egrep por defecto sin necesidad de usar esa opción. Es decir, que podrás usar las expresiones regulares extendidas. En este tutorial no entraré en explicar qué son las expresiones regulares, cómo se pueden usar y qué tipos hay en los *nix. Simplemente mostraré ejemplos prácticos de algunas cosas útiles que puedes hacer con egrep…

Puedes buscar una línea o palabra concreta en uno o varios archivos. Por ejemplo, imagina que quieres buscar la palabra ubuntu en un fichero llamado snap.txt y también en todos los .txt del directorio actual:

egrep ubuntu snap.txt

egrep ubuntu *.txt

La búsqueda puede ser también recursiva para buscar en todo el contenido del directorio actual:

egrep -r "hola mundo" *

Hasta aquí se buscaban palabras o cadenas exactas, es decir, teniendo en cuenta mayúsculas y minúsculas (case-sensitive), pero si quieres hacerlo en modo case-insensitive, sin importar si son mayúculas o minúsculas, puedes usar lo siguiente (si agregas w busca solo coincidencias completas):

egrep -i "ejemplo" documento.txt

egrep -iw "ejemplo" documento.txt

Mostrar, no las coincidencias, sino los nombres de archivos donde se han encontrado esas coincidencias:

egrep -l hola *.txt

Mostrar solo el patrón o palabra buscada dentro de un documento:

egrep -o printf hola.c

Recuerda que puedes usar todas las posibilidades que imagines. Puedes combinar varias de las opciones vistas anteriormente, o las puedes complementar con otras opciones como -A n y -B n, siendo n el número de líneas que quieres mostrar antes (Before) y después (After) de la coincidencia o ambas a la vez (C), para que así puedas ver lo que rodea a dicha coincidencia:

egrep -A 2 "printf" hola.c

egrep -B 2 "printf" hola.c

egrep -C 2 printf hola.c

Suprimir las líneas que contienen una coincidencia y solo mostrar las que no coinciden:

egrep -v "dos" números.doc

O si lo prefieres, puedes usar varias palabras o coincidencias con -e. Por ejemplo:

egrep -v -e "uno" -e "dos" -e "tres" numeros.txt

Si usas -c se pueden solo contar el número de coincidencias, o invertirlo con -v para que muestre el número de líneas no coincidentes. Por ejemplo:

egrep -c "include" main.c

egrep -v -c "include" main.c

E incluso mostrar el número de línea donde se ha producido la coincidencia, y también la posición que ocupa respectivamente:

egrep -n "void" hola.c

egrep -o -b "printf" hola.c

Y junto con las expresiones regulares se pueden ampliar sus capacidades. Por ejemplo, buscar una línea que comience pro Hola y termine por adios:

egrep "Hola.*adios" ejemplo.txt

Espero que te ayude…

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.