Tutorial

¿Qué es el comando GREP en Linux? ¿cómo usarlo?

El comando grep, es el acrónimo de «Global Regular Expresion Print» que significa «impresión de expresión regular global». Su funcionamiento se basa en procesar texto línea por línea e imprimir cualquier línea que coincida con el patrón especificado. Su comportamiento por defecto puede ser modificado mediante el uso de argumentos al momento de ejecutarlo.

¿Qué es el comando GREP en Linux?

Grep es considerado como uno de los comandos más útiles en Linux y sistemas operativos tipo Unix por su potente buscador de patrones en archivos. Ya viene instalado en todos los sistemas Linux, por lo que no es necesario instalarlo manualmente.

Sintaxis para usar el comando grep

[code] grep [Opciones] [Cadena de búsqueda] [Ruta del archivo] [/code]

Ahora que ya sabemos de que se trata, sigamos con algunos usos muy prácticos. A efectos de ejemplos, supongamos que tenemos un archivo llamado ejemplo.txt.

Buscar una cadena

[code]grep linux ejemplo.txt [/code]

Colorea la cadena buscada

Con esta variación hacemos que resalte en color las cadenas que coincidan en la búsqueda. Para ello agregamos el argumento –color.

[code]grep –color linux ejemplo.txt [/code]

Buscar cadenas insensibles a mayúsculas y minúsculas

Usando grep por defecto, solo tomara como coincidencias aquellas cadenas donde sus mayúsculas y minúsculas sean iguales. Es decir, «linux», «Linux» y «LINUX» serian tres búsquedas diferentes.

Sin embargo, si lo que requieres es que sea considerado como una coincidencia cualquiera de los tres casos, podemos buscar cadenas insensibles a mayúsculas y minúsculas utilizando el comando grep con el argumento -i.

[code]grep –color -i linux ejemplo.txt[/code]

Buscar cadena en varios archivos

Grep nos permite buscar una cadena de múltiples archivos. Supongamos que tengo un directorio llamado «ejemplos» y dentro tengo los archivos «ejemplo1.txt» y «ejemplo2.txt» y deseo buscar la palabra linux en ambos archivos.

[code] # grep –color -i linux ejemplo1.txt ejemplo2.txt[/code]

Donde la salida seria algo similar a esto:

[code]ejemplo1.txt: linux es un sistema operativo de fuente abierta.
ejemplo2.txt: Linux es un sistema operativo de código abierto.[/code]

Buscar múltiples cadenas

Puedes buscar múltiples cadenas. Por ejemplo:

[code] grep -i ‘linux \ | ubuntu ‘ ejemplo.txt[/code]

Búsqueda por tipo de archivos

Grep también nos permite buscar en varios archivos indicando su tipo. A continuación la sintaxis:

[code]grep -i linux * .txt[/code]

Modo búsqueda invertida

Otra buena característica que tenemos en el comando grep es la búsqueda invertida. Esto significa que buscará solo aquellas líneas que no contengan la cadena buscada.

[code]grep -v linux file.txt[/code]

Puede interesarte: Cómo eliminar archivos en Linux de forma permanente y sin dejar rastro.

Buscando recursivamente

Se emplea para buscar una cadena en un directorio y también en todo el subdirectorio contenido dentro de este. Es decir, tengo un directorio llamado «Datos» que contiene algunos archivos txt con algún contenido y también tiene un subdirectorio llamado ejemplos (es decir, / Datos / ejemplos ) que también contiene algunos archivos txt.

Si queremos buscar la cadena linux en los datos del directorio y también en todos los subdirectorios que contiene, utilizamos el argumento -r.

[code] grep -r "linux" Datos / [/code]

Imprime el número de línea de la coincidencia

El comando grep con argumento -n le mostrará el número de línea donde la cadena está disponible en el archivo.

[code] grep -n "linux" Datos/ [/code]

Imprimir el número de coincidencias encontradas

Con el argumento -c mostrará el número total de veces que se repite la cadena en el archivo.

[code] grep -i -c linux ejemplo.txt[/code]

Buscar coincidencias exactas

Si usamos grep sin argumentos nos mostrara todas las lineas donde se contiene la cadena, pero incluyendo aquellas donde este contenida en otra palabra. Supongamos que la buscando la cadena linux, luego grep busca toda esa palabra que contiene linux, por ejemplo: elinuxbook , linuxbooks , linuxtraining , etc. Así que aquí la coincidencia exacta significa que solo buscará la palabra linux y no otra. Para ello empleamos el argumento -w.

[code] grep -w "linux" ejemplo.txt[/code]

Buscar una línea coincidente exacta

Al igual que la cadena coincidente exacta, se puede buscar la línea coincidente exacta utilizando el argumento -x.

[code] # grep -x "linux es un sistema operativo de código abierto". ejemplo.txt [/code]

Verificar la versión instalada

Puede verificar la versión del paquete grep instalado usando el comando con el argumento -V.

[code] grep -V[/code]

Adicionalmente, si quieres consultar más opciones de comando grep, utiliza el siguiente comando en tu sistema Linux.

[code] man grep [/code]

Si encontraste útil este artículo, compártelo! O, si tienes algo que decir, no dudes en dejarlo en los comentarios.

Ver comentarios

  • Muy bien explicado, me ha faltado alguna screen con ejemplo práctico para ver la salida de datos cuando aplicas el comando.

Esta web utiliza cookies propias con finalidad funcional y de terceros para realizar el análisis de la navegación de los usuarios, mejorar mis servicios y mostrarte publicidad relacionada con tus preferencias mediante el análisis de tus hábitos de navegación. Si continúa navegando, se considera que acepta su uso.

Leer más