- ¿Qué es grep?
- Ver el contexto: mostrar líneas antes y después
- Buscar en una carpeta y todos sus subdirectorios
- Mostrar número de líneas
Hoy vamos a conocer una herramienta muy útil para quienes estamos comenzando en el mundo de la programación: grep. Es como un buscador inteligente que usamos desde la terminal. Aprenderemos paso a paso cómo funciona, cómo buscar texto dentro de archivos y cómo sacarle el mayor provecho. Vamos a hacerlo juntos.
¿Qué es grep?
grep es una herramienta de línea de comandos que se usa para buscar texto dentro de archivos. El nombre viene de "global regular expression print".
Cuando trabajamos como programadores, revisar archivos grandes como código fuente o logs (registros del sistema) se vuelve algo muy común. En esos casos, usar grep puede ahorrarnos mucho tiempo.
La estructura básica del comando es esta:
grep [OPCIONES] PATRÓN [ARCHIVO...]
PATRÓN: Es lo que estamos buscando (puede ser una palabra o frase).ARCHIVO: El archivo donde queremos buscar.
Supongamos que queremos buscar la palabra aliases dentro del archivo .bashrc. Ejecutamos este comando:
grep aliases .bashrc
Esto nos mostrará todas las líneas del archivo que contienen esa palabra. Por ejemplo:
# enable color support of ls and also add handy aliases
# some more ls aliases
# ~/.bash_aliases, instead of adding them here directly.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
grep nos devuelve las líneas exactamente como están en el archivo. Esto es útil, por ejemplo, si estamos buscando configuraciones dentro del archivo.
Ver el contexto: mostrar líneas antes y después
A veces no solo queremos ver la línea que coincide, sino también el contexto (lo que viene antes o después). Para eso usamos estas opciones:
| Comando | Descripción |
|---|---|
-B N | Muestra N líneas antes |
-A N | Muestra N líneas después |
-C N | Muestra N líneas antes y después |
Este comando muestra 1 línea antes y 1 después de cada coincidencia:
grep -C 1 aliases .bashrc
La salida se verá más o menos así:
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
--
# some more ls aliases
alias ll='ls -alF'
--
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
El separador -- indica dónde empieza una nueva coincidencia.
Buscar en una carpeta y todos sus subdirectorios
Si no sabemos en qué archivo está el texto, podemos buscar en toda una carpeta (e incluso subcarpetas) usando la opción -r, que significa búsqueda recursiva.
Supongamos que queremos buscar la palabra bashrc en todos los archivos del directorio actual y sus subdirectorios:
grep -r bashrc .
La salida nos mostrará en qué archivo aparece la palabra, así:
./.profile: if [ -f "$HOME/.bashrc" ]; then
./.bash_history:cat .bashrc
./.bashrc:# ~/.bashrc: executed by bash(1)
Esto es muy útil para encontrar código o configuraciones sin necesidad de abrir cada archivo uno por uno.
Mostrar número de líneas
Si además queremos saber en qué línea del archivo se encuentra la coincidencia, usamos la opción -n:
grep -rn bashrc .
La salida incluirá los números de línea:
./.profile:14: if [ -f "$HOME/.bashrc" ]; then
./.bash_history:63:cat .bashrc
./.bashrc:1:# ~/.bashrc: executed by bash(1) for non-login shells.
Esto nos ayuda a ir directamente al lugar correcto si estamos editando el archivo con un editor de texto.
Resumen
grepes una herramienta para buscar texto en archivos desde la terminal.- La forma básica del comando es
grep PATRÓN ARCHIVO. - Puedes usar:
-C N: mostrar N líneas antes y después de cada coincidencia.-B N: mostrar N líneas antes.-A N: mostrar N líneas después.
- Usa
-rpara hacer una búsqueda en carpetas y subcarpetas. - Usa
-npara incluir el número de línea en los resultados.
Así, poco a poco, vamos aprendiendo cómo dominar herramientas poderosas desde la terminal. grep será de tus mejores aliados cuando empieces a trabajar con proyectos reales.
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.