Grep: filtra archivos masivos con regex
Clase 29 de 29 • Curso de Expresiones Regulares
Contenido del curso
El lenguaje: caracteres, operadores, y construcciones
- 5

El punto en regex: selecciona cualquier carácter
09:55 min - 6

\d \w \s: las 3 clases que localizan todo
13:55 min - 7

Cuantificadores regex: *, + y ? en acción
17:42 min - 8

Contadores en expresiones regulares
14:02 min - 9

Greedy vs lazy en regex: cuándo usar cada uno
07:47 min - 10

Negaciones con gorrito en expresiones regulares
06:49 min - 11

Cómo detectar números telefónicos sin letras
01:06 min - 12

Cómo procesar archivos CSV con millones de líneas
08:00 min
Uso práctico de Expresiones Regulares
- 13

Filtrar logs gigantes con expresiones regulares
07:22 min - 14

Expresiones regulares para URLs HTTP
08:07 min - 15

Regex para validar teléfonos con separadores y extensiones
12:30 min - 16

Validación de emails con regex
13:42 min - 17

Validación de coordenadas GPS con regex
17:16 min - 18

Validar nombres propios con regex
03:21 min
Usos avanzados en Expresiones Regulares
Expresiones Regulares en lenguajes de programación
- 20

Cómo extraer variables de URLs con regex
10:48 min - 21

Regex en múltiples lenguajes con CSV real
03:29 min - 22

Perl: CSV de fútbol en cero segundos
23:35 min - 23

Expresiones regulares en PHP: preg_match con CSV
09:29 min - 24

Extraer empates de archivos masivos con PHP
16:25 min - 25

Python regex para análisis de archivos CSV
21:58 min - 26

Lectura de archivos con BufferedReader en Java
07:59 min - 27

Escapar regex en Java: doble barra
08:48 min - 28

Validación de emails en JavaScript con regex
17:35 min - 29

Grep: filtra archivos masivos con regex
Viendo ahora
Domina búsquedas masivas en segundos con grep y expresiones regulares desde la línea de comandos. Con herramientas ya compiladas en Unix y en Windows con Ubuntu, puedes filtrar archivos enormes con precisión, aprovechar pipes y optimizar tiempo y CPU sin complicaciones.
¿Qué hace grep con expresiones regulares en la línea de comandos?
Con grep puedes localizar patrones de texto de forma directa y veloz. Al combinarlo con otros comandos, obtienes flujos de trabajo potentes para inspeccionar, contar y filtrar datos sin salir de la terminal.
- grep: busca patrones con una versión reducida de expresiones regulares.
- cat: imprime archivos a pantalla para encadenar procesos.
- wc -l: cuenta líneas y te da una métrica rápida del volumen.
- pipe con standard output y standard input: conecta comandos para procesar datos en serie.
¿Cómo funcionan cat, wc -l y el pipe?
El flujo típico es enviar la salida de un comando a la entrada del siguiente. Así, construyes filtros paso a paso.
# imprimir archivo y contar líneas your_command_that_outputs_file | wc -l # imprimir archivo y filtrar con grep cat archivo.csv | grep "^2012"
- cat | wc -l: cuenta líneas totales.
- cat | grep: imprime solo lo que coincide con el patrón.
- pipe: encadena sin crear archivos temporales.
¿Cómo construir patrones con anclas, clases y límites?
Las anclas y clases dan control fino sobre dónde y qué buscas.
# líneas que comienzan con 2012 cat archivo.csv | grep "^2012" # marcador entre comas: un 3 seguido de cualquier dígito cat archivo.csv | grep ",[3][0-9]," # líneas que terminan en E cat archivo.csv | grep "E$" # clase de caracteres S o E al final grep "[SE]$" archivo.csv
- ^ y $: anclas de inicio y fin de línea.
- [0-9]: clase de dígitos, de cero a nueve.
- [SE]: clase con S o E.
- Patrones entre comas: delimitan campos para evitar falsos positivos.
¿Cómo aplicar búsquedas encadenadas con grep para filtrar datos?
Puedes usar varios grep seguidos para refinar resultados. Primero ubicas un conjunto amplio y luego lo reduces con filtros específicos. Esto mantiene simplicidad y da velocidad notable, incluso en equipos no recientes.
# todos los partidos donde aparece Brasil cat partidos.csv | grep "Brasil" # Brasil contra Uruguay cat partidos.csv | grep "Brasil" | grep "Uruguay" # además, filtrar por año al inicio de la línea (por ejemplo, 1952) cat partidos.csv | grep "Brasil" | grep "Uruguay" | grep "^1952"
- búsquedas encadenadas: agregan precisión con pasos claros.
- conteo rápido: añade wc -l al final para saber cuántos casos hay.
- rendimiento: la velocidad es “brutal” incluso con archivos grandes.
- caso real: detección de marcadores como 31–0 entre comas y partidos icónicos como el Maracanazo de 1950, filtrados por año y rivales.
¿Qué aprendizajes y prácticas te vuelven más efectivo con regex?
Las expresiones regulares son una herramienta esencial para cualquier developer. Su potencia viene de décadas de uso y madurez en múltiples lenguajes, y su curva de aprendizaje vale la pena.
- historia y ecosistema: surgieron en 1960, se fortalecieron en 1980 y crecieron con Perl y C.
- limpiar y romper líneas: útil para preparar datos, aunque cuidado con comas no escapadas y desbalances en columnas.
- eficiencia: un mal preprocesamiento gasta mucho tiempo y CPU; un buen patrón lo ahorra.
- patrones comunes: emails, dominios y otras cadenas repetidas se resuelven con expresiones simples y claras.
- consistencia entre lenguajes: hay pequeñas diferencias, pero la lógica es similar y transferible.
- mentalidad: evita el mito de “si usas regex, tienes dos problemas”; entenderlas bien convierte problemas en soluciones rápidas.
- recurso práctico: apóyate en un cheat sheet para recordar atajos y clases frecuentes.
¿Te quedó una duda específica o quieres compartir un patrón que te funcionó bien? Deja tu pregunta o comentario y seguimos la conversación.