Sistemas
search tool grep
Contexto y propósito
grep y herramientas modernas basadas en él permiten realizar búsquedas de texto rápidas, expresivas y escalables dentro de sistemas de archivos, repositorios de código y bases de conocimiento como Sistemas. Son clave para:
- Localizar configuraciones, logs y referencias técnicas.
- Auditar código y documentación.
- Potenciar flujos de trabajo de análisis, debugging y documentación en Obsidian.
Relación con Obsidian y Dataview
- Permite obtener dinámicamente los tags del archivo actual.
- Útil para:
- Construir consultas automáticas.
- Integrar búsquedas externas (grep/ripgrep) basadas en metadatos.
- Generar pipelines donde los tags de Obsidian actúan como filtros semánticos.
grep — fundamentos
- Herramienta clásica de búsqueda por patrones (regex) en texto plano.
- Características principales:
- Búsqueda línea a línea.
- Soporte de expresiones regulares POSIX.
- Uso eficiente en scripts y automatizaciones.
- Limitaciones:
- Más lenta en grandes repositorios.
- Manejo básico de binarios.
- Menor ergonomía comparado con herramientas modernas.
Opciones clave de grep
-rbúsqueda recursiva en directorios.-iignora mayúsculas/minúsculas.-nmuestra número de línea.-llista solo archivos con coincidencias.-vinvierte la coincidencia (exclusión).-Ehabilita regex extendidas.
ripgrep (rg) — evolución moderna
BurntSushiripgrep ripgrep recursively searches directories
- Reemplazo moderno y optimizado de grep.
- Ventajas principales:
- Extremadamente rápido (usa Rust).
- Respeta
.gitignorepor defecto. - Manejo eficiente de binarios y grandes volúmenes.
- Mejor soporte de Unicode.
- Ideal para:
- Repositorios grandes.
- Monorepos.
- Integración con editores y sistemas de notas.
Comparación grep vs ripgrep
- Rendimiento:
- grep: adecuado para casos simples.
- ripgrep: superior en cualquier escala.
- Experiencia de uso:
- grep: más flags manuales.
- ripgrep: defaults inteligentes.
- Integración:
- ripgrep se integra mejor con editores, IDEs y herramientas modernas.
Mejora de búsqueda en Sistemas
- Estrategias:
- Usar tags de Obsidian como filtros conceptuales.
- Mapear carpetas de Sistemas a rutas de búsqueda.
- Automatizar búsquedas recurrentes con scripts.
- Ejemplos de uso:
- Localizar patrones arquitectónicos.
- Detectar configuraciones duplicadas.
- Auditar referencias cruzadas entre notas técnicas.
Uso combinado con herramientas
- grep / ripgrep + shell:
- Pipes con
sed,awk,xargs. - Exportación de resultados a markdown.
- Pipes con
- grep / ripgrep + Obsidian:
- Generar enlaces automáticos.
- Crear índices de conocimiento.
- Sincronizar resultados con Dataview.
Documentación y recursos
- Manual oficial grep:
- ripgrep:
Casos de uso avanzados
- Búsqueda semántica aproximada combinando:
- Tags.
- Convenciones de nombres.
- Expresiones regulares estructuradas.
- Indexación previa para acelerar búsquedas frecuentes.
- Integración con tareas automatizadas de documentación y auditoría técnica.
grep — Cheatsheet de comandos
Búsqueda básica
Buscar una palabra en un archivo
grep "error" archivo.log
`
Buscar ignorando mayúsculas y minúsculas
grep -i "error" archivo.log
Búsqueda recursiva
Buscar en todos los archivos de un directorio
grep -r "TODO" .
Buscar recursivamente mostrando número de línea
grep -rn "config" .
Información del resultado
Mostrar solo nombres de archivos con coincidencias
grep -rl "password" .
Mostrar líneas que NO coinciden
grep -v "debug" app.log
Contar coincidencias
grep -c "WARN" app.log
Expresiones regulares
Regex extendidas
grep -E "error|fail|fatal" system.log
Coincidencia al inicio de línea
grep "^ERROR" system.log
Coincidencia al final de línea
grep "completed$" system.log
Coincidencia de palabras completas
grep -w "root" /etc/passwd
Contexto de líneas
Mostrar líneas antes y después
grep -C 3 "exception" app.log
Mostrar solo líneas anteriores
grep -B 2 "timeout" app.log
Mostrar solo líneas posteriores
grep -A 4 "startup" app.log
Archivos y formatos
Buscar solo en archivos con extensión específica
grep -r "SELECT" --include="*.sql" .
Excluir extensiones
grep -r "token" --exclude="*.min.js" .
Excluir directorios
grep -r "secret" --exclude-dir=node_modules .
Uso con pipes
Filtrar salida de otro comando
ps aux | grep "python"
Excluir el propio proceso grep
ps aux | grep "nginx" | grep -v grep
Logs y sistemas
Buscar múltiples patrones desde un archivo
grep -f patrones.txt app.log
Seguimiento de logs (combinado con tail)
tail -f app.log | grep "ERROR"
Rendimiento
Limitar número de coincidencias
grep -m 5 "failure" system.log
Forzar tratamiento de binarios como texto
grep -a "version" archivo.bin
Integración con Sistemas
Auditar configuraciones sensibles
grep -r "password" /etc
Buscar referencias cruzadas en notas
grep -r "\[\[.*Sistemas.*\]\]" .
Alternativas modernas
Equivalente rápido usando ripgrep
rg "error"
¿Te gusta este contenido? Suscríbete vía RSS