Grep es un comando de Linux muy importante y poderoso. Significa ‘Global Regular Expression Print‘ y se utiliza para hacer coincidir e imprimir un patrón de búsqueda o una expresión regular de un solo archivo o varios archivos de texto. Buscará el patrón de los archivos mencionados e imprimirán el resultado en la pantalla o en un archivo de salida.
En este tutorial, vamos a aprender a usar el comando grep con ejemplos. La sintaxis para el comando es la siguiente,
$ grep option search_pattern file_path
Ahora vamos allá con algunos ejemplos.
Buscando un patrón desde un solo archivo
Para buscar y ubicar un patrón desde un solo archivo, usa el siguiente comando:
$ grep danger ejemplo.txt
Esto buscará todas las líneas con la palabra “danger” en el archivo “ejemplo.txt” y producirá el resultado en la pantalla.
Buscar un patrón en múltiples archivos
También podemos buscar el patrón desde múltiples archivos, usando el siguiente comando:
$ grep danger ejemplo.txt exe.txt
Otro ejemplo sería,
$ grep danger *. *
Esto buscará ‘danger‘ del patrón de búsqueda en todos los archivos con cualquier nombre o extensión.
Redirigir la salida a un archivo
Al igual que podemos hacer con cualquier otro comando, también podemos redireccionar la salida del comando grep a un archivo, usaremos:
$ grep danger ejemplo.txt> salida.txt
Búsqueda insensible a mayúsculas
Las búsquedas de Grep son sensibles a mayúsculas y minúsculas por defecto. Si necesitamos ejecutar una búsqueda que no distinga entre mayúsculas y minúsculas, podemos usar la opción ‘i‘ con el comando grep,
$ search -i danger ejemplo.txt
Esto imprimirá cualquier variación del patrón de búsqueda ‘danger’, ‘DANGER’ o ‘Danger’ o ‘daNGer’ como la salida en la pantalla.
Buscando un patrón en subdirectorios
También podemos buscar un patrón en subdirectorios y todos los archivos que contienen utilizando la opción ‘r‘,
$ grep -r danger /home/usuario
Mostrar el número de línea para el patrón de búsqueda
Para mostrar el número de línea en el que coincide el patrón de búsqueda, podemos usar la opción ‘n‘ con el comando grep,
$ grep -n danger ejemplo.txt
Resalta el patrón combinado
Para resaltar el patrón de búsqueda coincidente, podemos usar ‘color’ con el comando grep,
$ grep -color danger ejemplo.txt
Líneas de impresión que comienzan con el patrón
Para imprimir todas las líneas como salida en la pantalla que comienza con el patrón de búsqueda, podemos usar la opción ‘^‘ ,
$ grep ^ danger ejemplo.txt
Líneas de impresión que terminan con el patrón
Para imprimir todas las líneas que terminan con el patrón de búsqueda, usa el símbolo ‘$‘,
$ grep danger $ ejemplo.txt
Imprimir todas las líneas excluyendo las que coincidan
Para imprimir todas las líneas, excluyendo las líneas que tienen el patrón de búsqueda coincidente, podemos usar la opción ‘v‘,
$ grep -v danger example.txt
Combinando grep con otro comando
También podemos usar el comando grep para buscar un patrón desde el resultado de otro comando. Por ejemplo, necesitamos obtener la información del proceso sobre httpd de todos los procesos en ejecución, podemos combinar el comando grep con el comando ‘ps‘,
$ ps -ef | grep httpd
Esto traerá información de proceso para httpd. Del mismo modo, podemos usar esto para otros servicios y otros comandos también. Otro ejemplo,
$ netstat -anp | grep 3306
Esto generará una lista de todas las conexiones con la base de datos mysql.
Con esto terminamos nuestro tutorial sobre cómo aprender el comando grep con ejemplos. Estos fueron solo algunos ejemplos y solo cubrimos algunas de las opciones del comando grep más comúnmente usadas, pero hay muchas más opciones, que puedes ver con el comando ‘grep -help’.