Ir al contenido

El medio de los artesanos de la web miércoles, 19 de agosto de 2026

MailStudio
Herramientas

Herramientas de línea de comandos para el desarrollo web

ripgrep, fd, fzf, bat, eza, jq, gh: los sustitutos contemporáneos de grep, find y cat, con lo que cada uno aporta realmente.

Les outils CLI que j'utilise tous les jours en dev web

La línea de comandos sigue siendo el lugar más rápido para buscar, filtrar y manipular código. Sin embargo, las herramientas Unix históricas — grep, find, cat — datan de una época sin .gitignore, sin directorios node_modules de 400 MB y sin salida en color. Una generación de sustitutos se ha impuesto en los entornos de desarrollo web. Panorama de los que realmente se ganan un sitio en un $PATH.

Punto común: son binarios únicos, sin dependencia de ejecución. Basta un brew install o un paquete apt, y ninguno exige configuración previa: son útiles desde la primera orden.

Buscar y filtrar

ripgrep — la búsqueda que grep debería haber sido

rg busca recursivamente una expresión regular respetando automáticamente el .gitignore, ignora los ficheros binarios y colorea su salida. Escrito en Rust por Andrew Gallant, es el motor de búsqueda por defecto de Visual Studio Code, lo que garantiza un uso a gran escala.

# Buscar una llamada de función en todo el proyecto, sin pasar por node_modules
rg "wp_enqueue_script" --type php

# Listar los ficheros que coinciden
rg -l "TODO" src/

# Expresión regular con captura, sustitución mostrada sin escribir
rg "version: (d+.d+)" --replace 'v$1'

La diferencia con grep -r no es solo la velocidad bruta sino el respeto del .gitignore: en un monorepo, grep dedica segundos a recorrer vendor/ y node_modules/ que rg ignora por defecto. El repositorio oficial documenta los filtros por tipo de fichero.

Lo que aporta ripgrep no es comodidad de escritura: es la velocidad a la que se comprende una base de código desconocida.

fd — encontrar un fichero sin recitar la sintaxis de find

find es potente y su sintaxis es punitiva. fd, escrito por David Peter, resuelve el caso corriente de forma sencilla: sintaxis legible, salida en color, respeto del .gitignore.

# Todos los ficheros SCSS
fd -e scss

# Encontrar y eliminar los .DS_Store residuales
fd -H '^.DS_Store$' -X rm

# Buscar un directorio concreto
fd -t d migrations

fzf — el filtro difuso que se compone

fzf, de Junegunn Choi, es un filtro difuso interactivo. Útil por sí solo, alcanza su valor combinado con otras herramientas mediante tuberías: navegación por el historial, selección de rama Git, apertura de ficheros.

# Abrir en $EDITOR un fichero elegido con filtro difuso
vim "$(fzf)"

# Cambiar de rama Git de forma interactiva
git checkout "$(git branch | fzf | tr -d ' *')"

# Combinado con fd y bat como vista previa
fd -t f | fzf --preview 'bat --color=always {}'

Leer y comprender

bat — cat con coloreado sintáctico

bat sustituye a cat para la lectura humana: coloreado sintáctico, números de línea, indicadores Git en el margen. Para scripting, cat sigue siendo preferible; para leer un fichero de configuración, la diferencia es clara.

bat wp-config.php
bat -r 40:80 functions.php   # solo las líneas 40 a 80

eza — un ls contemporáneo

Al no mantenerse ya exa, la comunidad retomó el desarrollo con el nombre eza: iconos, colores por tipo, vista en árbol, columna de estado Git.

eza -la --git --icons
eza --tree --level=2 src/

jq — trabajar con JSON

En cuanto entra en juego una API, jq resulta difícil de evitar. El proyecto, ahora mantenido bajo la organización jqlang, ha recuperado un ritmo regular de publicaciones.

# Extraer los títulos de artículos de la API REST de WordPress
curl -s https://ejemplo.com/wp-json/wp/v2/posts | jq '.[].title.rendered'

# Filtrar y reformatear
curl -s https://ejemplo.com/wp-json/wp/v2/posts 
  | jq '[.[] | {id, slug, titulo: .title.rendered}]'

gh — GitHub sin salir del terminal

El cliente oficial de GitHub cubre lo esencial del flujo de trabajo: creación de una solicitud de incorporación, revisión, consulta de las ejecuciones de integración continua, gestión de incidencias. Evita el ir y venir constante entre editor y navegador.

gh pr create --fill
gh pr checks
gh issue list --label bug

Recapitulación

HerramientaSustituye aAporte decisivo
rggrep -rRespeto del .gitignore, velocidad en monorepos
fdfindSintaxis legible para el caso corriente
fzfFiltro difuso interactivo, componible con tuberías
batcat (lectura)Coloreado sintáctico e indicadores Git
ezalsVista en árbol y columna de estado Git
jqConsulta y reformateo de JSON
ghInterfaz web de GitHubFlujo de revisión sin salir del terminal

Lo que hay que retener

Ninguna de estas herramientas aporta una capacidad inédita: reducen el coste de uso de operaciones realizadas decenas de veces al día. Es precisamente lo que las hace rentables, y lo que explica su adopción en cadenas de herramientas tan extendidas como la de Visual Studio Code.

Si solo quedara una, sería ripgrep: es el primer binario que instalo en una máquina nueva, antes incluso que mi editor. Las demás mejoran la comodidad; esa cambia mi velocidad de comprensión de una base de código que descubro. — Simon Janvier

También en Mail Studio

Compartir LinkedIn Bluesky Hacker News E-mail

Leer también