Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Grep Fundamentos de la línea de comandos

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

  • grep es 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 -r para hacer una búsqueda en carpetas y subcarpetas.
  • Usa -n para 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

  1. find 📚 Wikipedia

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.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY