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.
Excelente curso, gracias @Beco por compartir tus conocimientos de una manera sencilla y super práctico. Felicitaciones Platzi por la realización de este curso.
Gran curso, estoy absolutamente sorprendido. Empezando por el profesor, vine de su último curso sobre Comandos en Linux, donde no me gustó su desempeño, ni la estructura del mismo. Siendo honestos, empecé éste curso pensando que iba a ser insufrible, por la temática y por la experiencia del anterior, pero…
Para mi sorpresa, no es solo que me haya encantado la temática, sino que en este caso, el profesor ha sabido inspirar, y para culminar, la estructura del curso me ha parecido genial.
Se ha notado mucho el esfuerzo, mi opinión respecto al profesor a cambiado radicalmente, no lo esperaba. Se le notaba muy relajado, con un gran deseo de hacerse entender y que los alumnos entendieran cada paso. Se le notaba también la pasión por la tecnología que domina. Me encantaría ver más a @beco de esta forma en futuros cursos.
Gracias por hacer que me interese tanto por las Regex y por motivar en este duro camino @beco.
¿Cuál es la diferencia de -E y -G?
Me paso algo similar, pero la verdad aca Beco se pone super op !! severas clases ,buenas explaciones y se notaba el dominio del tema para propagarlo.
Maracanazo es el nombre con el que se conoce a la victoria de la selección de fútbol de Uruguay en el partido decisivo de la Copa Mundial de Fútbol de 1950 frente a la selección de fútbol de Brasil. Contra todo pronóstico, Uruguay ganó a Brasil 2-1 en el Estadio Maracaná de Río de Janeiro. Por extensión, el término se ha generalizado para definir a aquella victoria de un equipo o deportista, preferentemente una final, en campo ajeno y teniendo todos los factores en contra.
Fuente: Wikipedia XD
En un principio grep no me sopotó todas las búsquedas que hice pero cuando use egrep funcionó excelente.
¡Lo menciono por si a alguien le sirve!
tomare nota
Usaste grep -P "regular_expression" con P activas las expresiones regulares y las comillas son necesarias tal vez pueda ser eso
Que gran curso! Puedo sentir el poder ahora! te amo BECO <3
De los mejores cursos de platzi
grep nos ayuda a buscar dentro de archivos, textos muy puntuales. Es una versión muy reducida de las regex.
Podemos incluso juntar varios grep: cat results.csv| grep Brazil | grep Uruguay | grep ^1952 y tendremos varios resultados de Brazil y Uruguay en 1950
(min 2:45) Samoano / Samoamericano
Bueno, ya podemos entender los chorizos sin sentido que veíamos por ahí 😄
jajajaja
Lista básica de comandos principales:
//Coincidencias Basicas.-CualquierCaracter, excepto nueva linea
\d -CualquierDigitos(0-9)\D-No es un Digito(0-9)\w -Caracter de Palabra(a-z,A-Z,0-9, _)\W-No es un Caracter de Palabra.\s -Espacios de cualquier tipo.(espacio, tab, nueva linea)\S-No es un Espacio,Tab o nueva linea.//Limites\b -Limite de Palabra\B-No es un Limite de Palabra^-Inicio de una cadena de texto
$ -Final de una cadena de texto
//Cuantificadores:*-0 o Más
+-1 o Más
?-0 o Uno{3}-NumeroExacto{3,4}-Rango de Numeros(Minimo,Maximo)//Conjuntos de Caracteres[]-Caracteres dentro de los brackets
[^]-Caracteres que NOESTAN dentro de los brackets
//Grupos()-Grupo|-Uno u otro
es como ser harry potter pero sin el dinero.
Este curso ha valido todo mi tiempo en cada segundo
Uno de los mejores cursos en Platzi, muchas gracias @Beco
Gracias @Beco por este curso, me rei con sus expresiones cuando se equivocaba y a la vez aprendi un monton! :D