Guía para principiantes de Grep - Facilita la tecnología

Guía para principiantes de Grep – Facilita la tecnología

Hay un poco de sabiduría informática clásica que dice: «Si tienes un problema y decides resolverlo con expresiones regulares, ahora tienes dos problemas». Por supuesto, esto se debe a la percepción de que las expresiones regulares son una mezcla complicada de caracteres mágicos y vudú. Las expresiones regulares pueden permitirle lograr una lógica de programa elegante y concisa rápida y fácilmente, pero solo una vez que haya aprendido a comprender cómo funcionan y por qué. Casi cualquier sistema Linux o Mac viene con una poderosa herramienta de expresiones regulares llamada grep y aprender grep es una tarea esencial para cualquier usuario avanzado o administrador del sistema. Hoy, exploraremos algo de lo que puede hacer con grep y cómo puede ser una de las herramientas más poderosas en su arsenal geek.

Cómo funciona

En resumen, el trabajo de grep es buscar a través de un bloque de entrada. Eso es bastante vago, por lo que se describe mejor con un ejemplo. Supongamos que tiene un archivo de texto llamado distros.txt que tiene una lista de distribuciones de Linux, como la siguiente.

Debian: distribución de servidor estable
Ubuntu: distribución de escritorio originalmente basada en Debian
Kubuntu: utiliza el escritorio KDE en lugar de Gnome
Fedora: continuación del sistema de escritorio gratuito de Red Hat
Gentoo: un sistema Linux rápido basado en código fuente para usuarios profesionales
SuSE: Linux comercial propiedad de Novell
Mint: distribución derivada de Ubuntu con software restringido adicional

Grep se puede usar para leer el texto y filtrarlo para mostrar solo las partes que desea. Si quisiera ver solo las líneas que contienen la palabra «Ubuntu», ejecutaría el siguiente comando:

grep-simple

(Su versión de grep puede o no incluir resaltado de color como en el ejemplo anterior)

Sensibilidad de mayúsculas y minúsculas

Es posible que haya notado que nuestra última búsqueda no arrojó Kubuntu. A menos que se indique lo contrario, grep asumirá que ingresó su expresión exactamente de la manera que la quería, y esto se aplica a mayúsculas y minúsculas. Si busca «ubuntu» pero su archivo de texto contiene «Ubuntu», su búsqueda no encontrará nada. Para que su búsqueda no distinga entre mayúsculas y minúsculas, use el modificador -i, como en

grep -i ubuntu distros.txt

grep-dashi

Toda palabra

Con la búsqueda anterior, incluyó todas las variantes de mayúsculas de la palabra «Ubuntu». Incluyó Kubuntu porque contiene la palabra que buscaste. Es posible que desee incluir solo la versión estándar, no Kubuntu o Edubuntu, etc. Si ese es el caso, puede decirle a grep que coincida con la palabra completa solo pasando la opción -w.

grep -i ubuntu distros.txt

grep-dashiw

Exclusión

Tanto como puede usar grep para mostrar solo las entradas coincidentes, también puede usarlo para mostrar todo MENOS las entradas coincidentes. Para ampliar nuestras búsquedas anteriores, ahora podemos usar la opción -v para invertir nuestros resultados y mostrar solo las líneas que no coinciden.

grep-excluir

comodines

Grep tiene soporte completo para comodines al hacer coincidir patrones. Cuando use comodines y otros caracteres especiales, querrá asegurarse de que su patrón de búsqueda esté entre comillas, para que el shell de Linux no intente interpretarlos antes que grep. Los comodines comunes incluyen * para grupos de caracteres y . para representar un único carácter desconocido.

grep-comodines

Rangos

Si los comodines son demasiado amplios para usted, puede especificar caracteres individuales o un rango para incluir en su búsqueda. Los caracteres entre corchetes se incluirán en su patrón de búsqueda. Por ejemplo, si tuviera un archivo con una lista como

Item 1 - apples
Item 2 - bananas
Item 3 - coconuts
Item 4 - peaches
Item 5 - Grapes
Item 6 - Apricot

Puede elegir un rango particular usando algo como

grep "Item [2-4]" items.txt

Grep es una herramienta inmensamente poderosa, y aprenderla a fondo puede dar sus frutos de muchas maneras. Comprender grep también hace que sea mucho más sencillo pasar a otras potentes herramientas de consola como sed y awk. Entre esas tres herramientas, se puede hacer una increíble cantidad de magia de consola y script con mucho menos esfuerzo de lo que parece posible. Si eres fanático de grep, o te gustaría ver otras herramientas como sed y awk cubiertas aquí, deja una nota en los comentarios.

Experto Geek - Tu Guía en Tendencias Tecnológicas