Grep es una antigua y poderosa herramienta de búsqueda de orden de terminal del sistema UNIX que se usa también en GNU/Linux. 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 que puedes visualizar en la terminal o exportando a un archivo de texto. Lo que hace grep es buscar el patrón introducido en el archivo mencionado e imprimirá el resultado en la pantalla o en un archivo de salida, como hemos mencionado.
En este tutorial, vamos a aprender a usar la orden grep con ejemplos. La sintaxis para grep es la siguiente:
grep opción patrón ruta_archivo
Ahora comencemos a usar grep con ejemplos.
Buscando un patrón desde un solo archivo
Para buscar y ubicar un patrón desde un solo archivo, usaremos la siguiente orden:
grep gnu ejemplo.txt
Esto buscará todas las líneas con la palabra “gnu” en el archivo “ejemplo.txt” e imprimirá el resultado en la terminal.
Buscar un patrón en múltiples archivos
También podemos buscar el patrón desde múltiples archivos, usando la siguiente orden:
grep gnu ejemplo.txt resultado.txt
Otro ejemplo sería:
grep gnu *.*
Esto buscará ‘gnu‘ del patrón de búsqueda en todos los archivos con cualquier nombre o extensión.
Exportar la salida a un archivo
Al igual que podemos hacer con cualquier otra orden, también podemos exportar la salida de grep a un archivo:
grep gnu 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” como indicador con la orden grep:
grep -i gnu ejemplo.txt
Esto imprimirá cualquier variación del patrón de búsqueda ‘gnu‘, ‘GNU‘ o ‘Gnu‘ o ‘gNU’ 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 gnu /home/pedro
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 grep:
grep -n gnu ejemplo.txt
Resaltar el patrón
Para resaltar el patrón de búsqueda coincidente, podemos usar “color” con grep:
grep -- color gnu 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 ^ gnu 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 $ gnu 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 gnu ejemplo.txt
Búsqueda recursiva de un texto o palabra
Buscamos la palabra “texto” en un directorio:
grep -R “texto” /ruta/a/buscar/
Con esto terminamos este pequeño tutorial sobre cómo aprender sobre esta magnífica herramienta heredada de UNIX, grep, con ejemplos. Estos fueron solo algunos ejemplos y solo cubrimos algunas de las opciones de la herramienta grep más comúnmente usadas, pero hay muchas más opciones, que puedes ver con:
grep --help
Recuerda que el indicativo — –help lleva dos guiones. Si pones uno sólo en lugar de mostrar la ayuda, creerá que es un patrón a buscar.
Fuente: maslinux