A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

`grep` y `find` desde consola

29/29
Recursos

En los sistemas operativos basados en UNIX podemos utilizar expresiones regulares a trav茅s de la consola mediante los comandos grep y find.

  • grep: Nos ayuda a buscar dentro de los archivos, textos muy puntuales utilizando una versi贸n muy reducida de expresiones regulares.

  • find: Se utiliza para encontrar archivos en un determinado directorio a partir de diversas reglas de b煤squeda que incluyen expresiones regulares.

Aportes 91

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

En ArchLinux usando zsh (Z shell) tuve que usar comillas simples para que funcionaran las expresiones regulares:

cat results.csv | grep ',3[0-9],' 

Siento que aprend铆 una magia arcana, oscura e incre铆blemente poderosa

Like si entiendes la referencia

cat results_6aeb6252-c531-449d-bf29-e11193358b8c.csv | grep Colombia | grep Argentina | grep ,5, 

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

Bueno el curso, pero si quieren realmene dominar las regexp y conocer como trabajan, no hay como el tutorial en https://www.regular-expressions.info/

es como ser harry potter pero sin el dinero.

Que gran curso! Puedo sentir el poder ahora! te amo BECO 鉂わ笍

De los mejores cursos de platzi

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!

GREP = AYUDA A BUSCAR DENTRO DE LOS ARCHIVOS, TEXTOS PUNTUALES.
FIND = SE UTILIZA PARA ENCONTRAR ARCHIVOS EN UN DETERMINADO ESCRITORIO.

Tengo problemas con dos preguntas de la evaluaci贸n. No queria exponer las preguntas, pero por whatsapp no se responden y si agrego esto en preguntas lo recorta. A continuaci贸n las preguntas que no puedo encontrar respuestas en las opciones:
Pregunta 1

Supongamos que tenemos un archivo csv con
c贸digos de producto, todos los c贸digos son dos caracteres seguidos por 8 a 10 d铆gitos, pero s贸lo queremos los productos que empiecen con AB o CD, 驴qu茅 expresi贸n usar铆as?

a) [AB][CD]\d{8,10}
En este caso la primer letra es A o B y la segunda letra tiene que ser C o D. Acepta patrones AC AD BC BD. eso no es correcto.

b) [AB|CD]{2,2}\d{8|10}
[AB|CD]{2,2} esta expreci贸n acepta A B | C D y {2,2} tienen q ser 2. AB AC A| C| son validos.
{8|10} esta expresi贸n creo no es valida.

c) [ABCD]{2,2}\d{8,10}
Elegi esta opci贸n y fue evaluada como incorrecta. Es cercana a lo que pide el patron pero acepta las letras desordenadas ej: AC, CA, BD serian correctas cuando no lo son.

d) [AB][CD]{2,2}\d{8|10}
[AB][CD] explicado arriba caso a) y {8|10} esta expresi贸n creo no es valida


(AB|CD)\d{8,10} Esta creo puede ser una soluci贸n correcta.

Segunda pregunta

El patr贸n聽/(\d+?),.*/聽qu茅 match tendr铆a
(representando al match de la forma [ab]):

Cadena a analizar
12,34,56,78

Opciones
[12,34,56,78]
[12,34,56],78
[12],34,56,78
[1]2,34,56,78

[12,34,56,78]
鈥> (\d+?),.* [12,34,56,78]
Opci贸n que elegi y es incorrecta, yo creo que la expresi贸n toma el match completo.

[12,34,56],78
鈥> (\d+,){2,2}\d+ [12,34,56],78
expresi贸n posible para este caso (\d+,){2,2}\d+

[12],34,56,78
鈥> (\d+) [12],[34],[56],[78]
Expresi贸n posible para este caso (\d+)

[1]2,34,56,78
鈥> (\d+?) [1][2],[3][4],[5][6],[7][8]
Expresi贸n posible para este caso (\d+?)

Gracias.

excelente curso ,mil gracias

Excelenteeeee curso Beco!
Gracias !

Excelente Profesor!!
Domina el tema y lo mejor, sabe explicar
Muy buen curso 馃槂

Alberto, gracias por este curso, es incre铆ble, es el curso que mas he disfrutado de todos, eres el mejor. Un abrazo desde Mosc煤.

Muy bueno el curso, pero el examen es desastroso, preguntan que match hace una expresi贸n, la pruebo y da mas de una respuesta鈥 no se como se supone que se va responder bien a eso?.. en fin鈥

EN LA PREGUNTA:
Supongamos que tenemos un archivo csv con c贸digos de producto, todos los c贸digos son dos caracteres seguidos por 8 a 10 d铆gitos, pero s贸lo queremos los productos que empiecen con AB o CD, 驴qu茅 expresi贸n usar铆as?

LA RESPUETA CORRECTA ES: [ABCD]{2,2}\d{8,10} pero la marca como erronea

Gracias por el curso, est谩 en mi top 5 de cursos hasta ahora

Gracias @Beco por este curso, me rei con sus expresiones cuando se equivocaba y a la vez aprendi un monton! 馃槃

con:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal

cat PartidosFutbol.csv | grep ,3\[0-9],

Este curso estuvo bastante genial, esperaba menos y pense que seria mas pesado

usar la consola y grep hace muy potente las busquedas de contenidos de ficheros

Este curso ha valido todo mi tiempo en cada segundo

隆Cursazo! Tan sucinto y amplio a la vez. Gracias, Beco.

Muchas gracias por el curso鈥 Ha sido excelente!!! 猸愨瓙猸愨瓙猸

En 1950 gan贸 Uruguay Beco, no Brasil. Lo dice alguien que no le interesa el f煤tbol jeje. Igual tremendo curso y se logr贸 aprender las RegEx 馃

grep nos ayuda a buscar dentro de archivos, textos muy puntuales. Es una versi贸n muy reducida de las regex.

Ejemplo:

cat results.csv | grep 'expresionRegular' -> cat results.csv | grep TRUE$

Podemos incluso juntar varios grep: cat results.csv| grep Brazil | grep Uruguay | grep ^1952 y tendremos varios resultados de Brazil y Uruguay en 1950

Gracias Prof. Alberto , muy buen curso, excelentes explicaciones!

隆Gracias por todo! Aprend铆 much铆simo en este curso, lo que m谩s me encant贸 fue la aplicaci贸n de REGEX en JS, porque justamente me quiero especializar en WEB.

Hola hice la evaluaci贸n, y en unas de las preguntas de la evaluaci贸n dice:
El patr贸n聽/(\d+?),./聽qu茅 match tendr铆a? (representando al match de la forma [ab]):
Esta es la cadena:
[12,34,56,78]
[12,34,56],78
[12],34,56,78
[1]2,34,56,78
Eleg铆 la opci贸n [12,34,56,78], y la respuesta fue incorrecta. " (\d+?), " hasta esta parte de la expresi贸n toma [12,]34,56,78 , pero luego con el .
toma toda la linea, probando en atom veo lo mismo. No veo cual de las opciones distinta a esa es la correcta.

<code>

La 鈥渆xpresi贸n regular鈥 de Beco es: 鈥榌potente].*鈥

Este tema lo tenia pendiente de estudiar desde hacia mucho tiempo, ve铆a el potencial de la herramienta pero la primera vez que lo ves es intimidante, es muy poco intuitivo pero una vez se entiende es una herramienta muy poderosa

  • uso del pip (鈥 | '): el standard output del primer comando lo manda al standard input del segundo.

P.D.: Excelente curso

fue un gran curso , una verdadera navaja suiza.

<script>

var nombre=鈥楶rueba de codgo鈥;
if(nombre.match(/^[^@][email protected][\w.]{2,10}.[\w]{2,5}$/i)) {
alert('Pepe ');
} else {
alert(鈥楽ofia鈥);
}

</script>

En java seria java find
matcher.find()

en windows
type results.csv | grep ,3[0-9].

alguien tiene el acordeom ? D

Gracias pofesor Beco, muy buen curso!!! saludos!!!

Excelente curso.

Qu茅 buen curso, tengo una navaja suiza incre铆blemente poderosa.
馃槃

Excelente curso鈥

Con grep se pueden hacer b煤squedas en sistemas unix like utilizando expresiones regulares.

Sugundo curso que veo del profesor tambi茅n este curso esta genial!!

Gracias beco

Excelente cursos, profesor y explicacion.

El examen es complicado

Muy Buen curso eres muy buen profesor !!! Gracias.

Muy buen curso

Uno de los mejores cursos que me he topado, muy carism谩tico el profesor y te anima a aprender las expresiones regulares que si bien no se ven muy atractivas ya que no se parecen a nada que ya exista, son muy potentes, 煤tiles y no son tan dif铆ciles de entender, 5 estrellas para este curso.

profe muchas gracias por el curso muy bueno

Qu茅 gran curso, Alberto, cuando sea grande quiero programar como usted. 馃槃

Excelente curso, nunca me imagine el alcance que pod铆an tener las expresiones regulares.

Excelente curso y profesor! Mil gracias! <3<3<3

El curso muy bueno, el profe una maquina, y ya he aprendido muchisimo de linea de comandos, de sql, de regex, etc. Si bien yo ya me hab铆a enfrentado a las expresiones regulares y tuve que resolver problemas por mi cuenta, este curso logr贸 subir mi nivel mucho m谩s de lo que me imaginaba, logr茅 conectar otros aprendizajes, estoy muy conforme, gracias profe, gracias platzi.

Buen curso, a ver qu茅 tal el examen! 馃

Si. Definitivamente excelente curso. Y es muy recomendable complementarlo con el de Terminal.

Casualemente dos d铆as despu茅s de terminar el curso necesite las expresiones regulares
Quise traducir la explicaci贸n de un paquete de PHP que habla slugs, pero como la traducci贸n del texto fue literal, cada palabra slug se tradujo a babosa y esa no era la 铆dea jajaja
Entonces esta fue la soluci贸n:
[a-z]{2,3}?\s?babosa[s]?
Y reemplazar con 鈥榰n slug鈥

鈥 Antes de el reemplazo
Antecedentes: 驴Qu茅 es una babosa?

Una babosa es una versi贸n simplificada de una cadena, t铆picamente compatible con URL. El acto de 鈥渟lugging鈥 de una cadena suele consistir en convertirla en un caso y eliminar los caracteres no compatibles con la URL (espacios, letras acentuadas, amperios, etc.). La cadena resultante puede utilizarse entonces como identificador de un recurso determinado.

Por ejemplo, si tienes un blog con entradas, podr铆as referirte a cada entrada mediante el ID:

http://example.com/post/1
http://example.com/post/2

鈥 pero eso no es particularmente amigable (especialmente para el SEO). Probablemente preferir铆as usar el t铆tulo del post en la URL, pero eso se convierte en un problema si tu post se titula 鈥淢i cena con Andr茅 y Fran莽ois鈥, porque esto tambi茅n es bastante feo:

http://example.com/post/My+Dinner+With+Andr茅+%26+Fran莽ois

La soluci贸n es crear una babosa para el t铆tulo y usarla en su lugar. Tal vez quieras usar el m茅todo incorporado de Laravel, Str::slug(), para convertir ese t铆tulo en algo m谩s amigable:

http://example.com/post/my-dinner-with-andre-francois

Una URL as铆 har谩 a los usuarios m谩s felices (es legible, m谩s f谩cil de escribir, etc.).

Para m谩s informaci贸n, puede que quieras leer esta descripci贸n en Wikipedia.

Las babosas tambi茅n tienden a ser 煤nicas. As铆 que si escribes otra entrada con el mismo t铆tulo, deber铆as distinguir entre ellas de alguna manera, t铆picamente con un contador incremental a帽adido al final de la babosa:

http://example.com/post/my-dinner-with-andre-francois
http://example.com/post/my-dinner-with-andre-francois-1
http://example.com/post/my-dinner-with-andre-francois-2

Esto mantiene los URLs 煤nicos.

El paquete Eloquent-Sluggable para Laravel tiene como objetivo manejar todo esto por ti autom谩ticamente, con una configuraci贸n m铆nima.

鈥 Despu茅s del reemplazo
Antecedentes: 驴Qu茅 es un slug?

Un slug es una versi贸n simplificada de una cadena, t铆picamente compatible con URL. El acto de 鈥渟lugging鈥 de una cadena suele consistir en convertirla en un caso y eliminar los caracteres no compatibles con la URL (espacios, letras acentuadas, amperios, etc.). La cadena resultante puede utilizarse entonces como identificador de un recurso determinado.

Por ejemplo, si tienes un blog con entradas, podr铆as referirte a cada entrada mediante el ID:

http://example.com/post/1
http://example.com/post/2

鈥 pero eso no es particularmente amigable (especialmente para el SEO). Probablemente preferir铆as usar el t铆tulo del post en la URL, pero eso se convierte en un problema si tu post se titula 鈥淢i cena con Andr茅 y Fran莽ois鈥, porque esto tambi茅n es bastante feo:

http://example.com/post/My+Dinner+With+Andr茅+%26+Fran莽ois

La soluci贸n es crear un slug para el t铆tulo y usarla en su lugar. Tal vez quieras usar el m茅todo incorporado de Laravel, Str::slug(), para convertir ese t铆tulo en algo m谩s amigable:

http://example.com/post/my-dinner-with-andre-francois

Una URL as铆 har谩 a los usuarios m谩s felices (es legible, m谩s f谩cil de escribir, etc.).

Para m谩s informaci贸n, puede que quieras leer esta descripci贸n en Wikipedia.

Los slug tambi茅n tienden a ser 煤nicos. As铆 que si escribes otra entrada con el mismo t铆tulo, deber铆as distinguir entre ellos de alguna manera, t铆picamente con un contador incremental a帽adido al final del slug:

http://example.com/post/my-dinner-with-andre-francois
http://example.com/post/my-dinner-with-andre-francois-1
http://example.com/post/my-dinner-with-andre-francois-2

Esto mantiene los URLs 煤nicos.

El paquete Eloquent-Sluggable para Laravel tiene como objetivo manejar todo esto por ti autom谩ticamente, con una configuraci贸n m铆nima.

No pude reemplazar correctamente todos los casos pero si me ahorr贸 tiempo de no tener que buscar cada palabra 鈥榖abosa鈥

Ya sab铆a algo pero llevar este curso ha sido lo mejor. 隆Gracias!

Uno de los mejores cursos en Platzi, muchas gracias @Beco

Excelente curso, el poder que tienen las expresiones regulares es increible!,
Antes de ver este curso, veia una leina de Expresion regular y pense que era otro nivel superior, ahora comprendo mucho mas!

Gracias Beco

Muchisimas GRACIAS!!! Por este curso Beco!!! Estuvo genial! 馃槃

cool

Gracias, Me gust贸 mucho el curso. Me tomar谩 tiempo aprenderlo bien pero har茅 mi mejor esfuerzo.

Solo paso para recordar esto:

鉃  Regex cat results.csv | grep Argentina | grep Colombia | grep 1993-09-05
1993-09-05,Argentina,Colombia,0,5,FIFA World Cup qualification,Buenos Aires,Argentina,FALSE

Much铆simas gracias maestro, con esto tratare de salvar el semestre

Muy buen curso

Me encant贸 el curso. Es uno de los mejores que he tomado. Amplia tus conocimientos sobre programaci贸n much铆simo.

Excelente curso

Gracias por el curso, estuvo excelente.

excelente curso, muchas gracias super util

si no les deja descargar en jpg deben poner ? al final de la url dar enter y voila!

Estuvo genial el curso!.

Estupendo curso instructor Alberto y gracias por conferirnos los pasos para usar esta herramienta que nos ser谩 muy 煤til.

隆Que emoci贸n! Ya estramos en la recta final del curso.

excelente curso y profesor!

Gracias a ud @Beco por la dedicacion al curso, y aunque vengo por aca dos a帽os despues, creo que el curso esta vigente y se aprende demasiado.

Excelente curso! Me encant贸 que nos dieran una muestra con diferentes lenguajes! Excelente maestro, informaci贸n super concreta y directa! Gracias!

y el comando find pa cuando? :v

Algo que prob茅 y funcion贸, es combinar el comando grep y el comando wc, para poder imprimir en consola cuantas l铆neas cumplen con la expresi贸n regular, y con eso evitar que nos imprima todas.

El comando se usa de la siguiente manera:

$cat results.csv | grep REGEX | wc -l

Gracias Alberto. Primer buen curso de Regex que encuentro!

Ejemplo utilizando find para encontrar archivos que tengan extensi贸n de javascript o de python:
find -regextype posix-egrep -regex '.*(js|py)$'

Me encanto este curso, en verdad he resuelto muchos problemas como desarrollador que con espresiones regulares los hubiera resuelto en un abrir y cerrar de ojos

Muchas gracias por el curso muy bueno.

alguien tiene el github de este curso ? que me lo pase porfavor

excelente curso

Me siento como Gok煤 cuando aprendi贸 la teletransportaci贸n despues despu茅s de hacer este curso! Muy buen铆simo!

Me voy a seguir riendo del chiste 鈥淪i tienes un problema y lo solucionas con expresiones regulares, entonces tienes dos problemas鈥 jajaja

Excelente curso!

Excelente curso !