Activa JavaScript para disfrutar de los vídeos de la Mediateca.
03-Comandos linux 3 - Parte 3/3 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
vamos a empezar explicando que son las expresiones regulares y las aplicamos al
00:00:00
comando grep entonces voy poniendo aquí lo que me interesa
00:00:06
vale entonces que son las expresiones regulares os acordáis que cuando
00:00:13
nosotros hacíamos un ls y poníamos un asterisco o poníamos una interrogación
00:00:18
entonces le estábamos diciendo que tenía que coincidir
00:00:23
vale decir hay ciertos caracteres que se representaban de una manera especial
00:00:26
Como por ejemplo el asterisco que quería decir cualquier combinación de caracteres, 0, 1 más, y la interrogación que quería decir en este caso cualquier carácter cuando hacíamos el comando ls.
00:00:30
Entonces aquí una expresión regular lo que nos está diciendo que es un conjunto de caracteres que se utilizan para que coincida con una serie de patrones.
00:00:44
Por ejemplo, Fernando asterisco. Pues tiene que coincidir que tiene que ser Fernando y luego cualquier combinación de teclas, de caracteres.
00:00:56
Como hemos dicho, el asterisco y la interrogación tienen un significado especial.
00:01:09
Pues obviamente hay caracteres que tienen significados especiales cuando se utilizan dentro de las expresiones.
00:01:13
Y nosotros vamos a ver que hay unas expresiones básicas y hay unas expresiones extendidas.
00:01:20
Son diferentes caracteres que me van a funcionar en unas y en otras.
00:01:27
Te dicen que aunque no es necesario ponerlo entre comillas simples, pues que es una buena práctica que lo hagáis.
00:01:32
Para evitar que el CEL lo reconozca o lo pueda interpretar como caracteres diferentes a los que están dentro de las expresiones regulares.
00:01:41
Vamos a empezar por las expresiones regulares básicas.
00:01:53
Empiezo por el punto.
00:01:57
Un punto. ¿Qué quiere decir en este caso un punto?
00:02:01
Representa cualquier carácter.
00:02:06
Uno. Cualquier carácter. ¿Sí? Entonces, si yo, por ejemplo, le digo el A punto punto, quiere decir que la expresión va a coincidir con una letra A seguida de cualquier carácter, ¿vale?
00:02:08
Y seguida de cualquier carácter. Es decir, cuando yo quiera indicar que, por ejemplo, sea fer y luego después de fer haya un carácter cualquiera, tengo que poner un punto.
00:02:28
cuando nosotros teníamos el ls era una interrogación aquí es un punto si nosotros
00:02:42
también podemos poner el abre y cierra vale esto es el abre y el cierra corchetes si eso
00:02:49
¿Para qué? Pues en este caso, para decirle que coincida con los contenidos, con los caracteres que hay contenidos dentro del abre y cierra corchetes, ¿sí?
00:03:03
Entonces, yo dentro del corchete voy a poner una lista o un rango de caracteres, ¿vale? Una lista o un rango.
00:03:18
La lista, pongo todos los caracteres juntos. A, B, C, D, ¿vale? O A, E, I, O, U. Pero si quiero indicar un rango, tengo que poner un guión, ¿vale? No sé si lo veis aquí. Tengo que poner un guión.
00:03:27
Bien, es decir, que pongo un rango empezando por el carácter menor, porque sigue el estándar ASCII, tienen que estar en orden correcto, ¿vale? No vale que yo ponga D-A, tiene que ser ascendente A-D.
00:03:42
Quiere decir que cualquier letra, que sea o la A o la B o la C o la D, eso es lo que quiere decir, ¿vale? Y para eso tengo que poner entre corchetes, ¿de acuerdo? ¿Sí?
00:03:59
Entonces, o pongo un conjunto de caracteres en el orden que me la gana, es decir, A, J, L, M, X, 3, 8, 7, o si es un rango que está seguido, pongo el primer carácter, un guión y el último, siempre en orden.
00:04:11
¿De acuerdo? Pero aquí hay una aclaración y es este carácter que os pongo aquí, ¿vale? El gorrito que hay. Si yo pongo dentro del rango, si ese rango empieza por este gorrito, estoy aquí abajo ahora, fijaros que aquí empieza por un gorrito.
00:04:28
¿Qué quiere decir? Quiere decir que esa expresión es lo que no es ni A, ni B, ni C. Es decir, es la negar. Es negar el conjunto de caracteres que yo ponga entre el abre y cierra corchetes.
00:04:52
Es decir, que no sea ninguno de la lista, ¿sí? Que no sea ni A, ni B, ni C, ¿sí? Para eso ponemos dentro de los corchetes el primer carácter que sea el gorrito, ¿de acuerdo? ¿sí?
00:05:07
Vale, vamos a ver otros. El siguiente es el asterisco, y el asterisco va a tener el mismo significado que teníamos, pero cuidado, porque fijaros que me dice el carácter anterior, carácter anterior repetido cero o más veces, ¿sí?
00:05:25
Por ejemplo, si yo pongo aquí una D y un asterisco, quiere decir que el carácter D va a poder estar repetido cero una o más veces.
00:05:49
Cero en cero una o más veces.
00:06:03
Es decir, es el asterisco, pues el carácter que está delante de él, repetido cero una o más veces.
00:06:07
¿Sí? Y luego tenemos estos dos. Que esto no es dentro del rango que hemos visto antes, es simplemente dentro de la expresión regular.
00:06:14
Si yo pongo un gorrito, quiere decir que todo lo que yo ponga en esa expresión, quiere decir que la línea tiene que empezar por.
00:06:27
La línea tiene que empezar por...
00:06:36
Si yo pongo, por ejemplo, aquí el gorrito y una A, le estoy diciendo que la línea tiene que empezar por una A.
00:06:40
Esto es para indicar todo lo que empiece por.
00:06:50
Y el dólar es para indicar todo lo que termine por.
00:06:53
Si yo le pongo aquí el C y le pongo un dólar, le estoy diciendo que la línea tiene que terminar por una C.
00:06:56
¿Sí?
00:07:05
Entonces tenemos estas expresiones que nosotros podemos utilizar.
00:07:06
Pues me voy a ir al comando grep, que es el que vamos a ver.
00:07:12
Ahora voy a ir con las expresiones que me faltan, las expresiones extendidas.
00:07:16
Ahí me faltaba esto, perdóname.
00:07:20
Pero antes de empezar con las expresiones extendidas voy a empezar con las regulares.
00:07:22
Me queda aquí dos, que me faltaban estos dos.
00:07:28
Si yo quiero decirle que empieza por o termina por una palabra,
00:07:31
¿Vale? Fijaros que me dice para coincidir al principio o al final de una palabra
00:07:36
¿Vale? Ahora vamos a hacer ejemplo y lo vais a entender todo esto
00:07:45
O yo le puedo decir entre llaves una let un número
00:07:48
¿Vale? Para indicar por ejemplo que quiero que se repita dos veces
00:07:52
Entonces yo puedo decir C y pongo abre y cierra y pongo un 2
00:07:58
Quiere decir que esa C tiene que aparecer dos veces
00:08:02
Y por último me dice que si quiero buscar un carácter especial lo que debemos hacer es caparlo
00:08:05
Que esto ya nos tiene que sonar, que esto es de capar
00:08:15
Y para capar algo en Linux lo que vamos a hacer es preceder el carácter que queremos capar de la barra invertida
00:08:18
Vamos a hacer ejemplos para que veamos cómo funciona esto
00:08:25
y para eso vamos a ver el comando grep
00:08:34
entonces para utilizar el comando grep me voy a ir a
00:08:38
y escanea veral y habíamos creado aquí una carpetita que se llamaba viernes
00:08:43
y en esta carpetita tenemos
00:08:48
este ficherito que ya estábamos trabajando con él en estos días
00:08:52
¿Sí? Entonces tenemos este ficherito alumnos centro punto txt. ¿Lo veis? ¿Sí? Vale. ¿Cómo le puedo yo decir que quiero que me muestre no todo el contenido de este fichero, sino que solo quiero que me muestre las líneas que coinciden con un patrón que yo quiero decirle?
00:09:00
Un patrón es algo que yo quiero buscar, que es lo que estamos haciendo con una expresión regular.
00:09:24
Pues vamos a utilizar el comando grep.
00:09:29
¿Cómo funciona el comando grep?
00:09:32
El comando grep le tengo que pasar qué es lo que quiero que me busque.
00:09:34
Es decir, por ejemplo, yo le voy a poner, oye, quiero que me busques, por ejemplo, pues yo qué sé, smrb.
00:09:39
Uno, smrb.
00:09:48
¿Sí?
00:09:50
Y ahora le tengo que decir cuál es el fichero en el que quiero que me lo busque. Pues le voy a decir alumnos dentro. ¿Y qué es lo que me ha devuelto? ¿Qué es lo que me ha hecho esto? Me ha ido recorriendo línea a línea.
00:09:50
¿Sí? Es decir, lo que me ha ido haciendo es, me va la primera línea, me dice, oye, ¿hay en esta primera línea esto de aquí, 1SMRB?
00:10:05
Si la respuesta es que no, no me la muestra.
00:10:20
Siguiente línea, oye, ¿hay aquí 1SMRB? No, pues no me la muestra.
00:10:23
Va en la siguiente, 1SMRB, no me la muestra.
00:10:29
va a la siguiente aparece un smrb no me la muestra vale y aquí va viendo no me la muestra está no me
00:10:32
la muestra siguiente línea está no me la muestra siguiente línea está no no me la muestra y ahora
00:10:41
me voy a la siguiente y me dice oye en esta línea aparece un smrb pues efectivamente y me la muestra
00:10:46
¿Sí? ¿Lo veis? Entonces solo me muestra aquellas líneas del fichero o ficheros que yo le indique donde aparece la cadena que yo le quiero decir.
00:10:57
¿Sí? ¿Me seguís? Vale. Si yo le digo, vamos a hacer otro ejemplo, si yo le digo que me muestres un SMR, pues fijaros que me muestra todas las líneas donde aparece un SMR.
00:11:09
¿Sí? ¿De acuerdo? Vale, vamos a ir probando las expresiones regulares. Vamos a empezar por el punto. Vamos a suponer que yo quiero que me muestre todas las líneas donde aparece, en este caso, un 1, luego cualquier carácter y luego, por ejemplo, un 8.
00:11:25
Entonces, ¿qué es lo que le voy a decir?
00:11:53
Oye, quiero que me aparezca un 1
00:11:56
Luego cualquier carácter
00:11:58
¿Cómo le digo cualquier carácter?
00:11:59
Le pongo un punto
00:12:00
Y luego que me aparezca un 8
00:12:01
Eso es lo que le estoy diciendo
00:12:04
Le estoy diciendo, búscame todas las líneas
00:12:06
Donde me aparece un 1
00:12:08
Luego cualquier carácter
00:12:11
Y luego un 8
00:12:14
Pues fijaros
00:12:16
¿Qué es lo que me devuelve?
00:12:18
Un 1 cualquier carácter y un 8
00:12:20
Un 1 cualquier carácter y un 8
00:12:27
Un 1 cualquier carácter y un 8
00:12:29
¿De acuerdo?
00:12:31
Entonces ahí ya vemos para qué sirve el punto
00:12:34
Para indicar cualquier carácter
00:12:37
¿Sí?
00:12:41
Si yo le digo
00:12:41
Oye, que quiero que sea cualquier carácter
00:12:44
Cualquier carácter
00:12:47
Y un 2
00:12:50
Pues fijaros
00:12:51
Que me está mostrando un 1, dos caracteres cualesquiera y un 2
00:12:54
Un 1, dos caracteres cualesquiera y un 2
00:13:00
Un 1, dos caracteres cualesquiera y un 2
00:13:02
¿De acuerdo? ¿Sí?
00:13:05
El siguiente era un rango
00:13:08
Yo le puedo decir, oye, quiero que me busques
00:13:10
Todas las líneas del fichero y le voy a poner un rango
00:13:14
¿Cómo le pongo un rango? Entre abre y cierra
00:13:18
Y le digo, oye, quiero que sea, por ejemplo, yo qué sé, quiero que sea una B, una F o una G o una A, seguido de, yo qué sé, que me lo estoy inventando, de esto.
00:13:21
Entonces, ¿qué le estoy diciendo? Oye, quiero que me busques todas las líneas que contengan o una B, o una F, o una G, o una A, seguido de una D
00:13:41
Pues fijaros que la única que me he encontrado es esta
00:13:53
Voy a mostrar un momentito el fichero y vamos a hacer un ejemplo
00:13:55
Por ejemplo, le voy a decir que quiero que me muestre todas las líneas que sean una A, una R o una P, seguido de una B, ¿vale?
00:14:01
entonces, ¿qué le estoy diciendo?
00:14:50
le estoy diciendo
00:14:53
oye, quiero que me busques
00:14:54
todas las líneas que contengan
00:14:57
o una A o una R o una B
00:14:59
seguido de una B, es decir
00:15:01
RB lo cumple
00:15:03
porque es o una A o una R
00:15:05
una P seguido de una B, perfecto
00:15:07
A y una B
00:15:09
perfecto, A y una B
00:15:11
y perfecto, A y una B
00:15:13
entonces aquí tenemos todo lo que cumple
00:15:15
¿sí?
00:15:17
¿De acuerdo? ¿Sí? Vale.
00:15:20
¿Qué es lo que le puedo decir?
00:15:28
Oye, quiero que me digas que sea una R o un 1 o un 2, seguido de una L.
00:15:29
Y que sea o una A o un 1.
00:15:51
¿Qué me devuelve esto?
00:15:55
Dice, oye, ¿qué es lo que quiero?
00:15:58
digo que sea o una r o una l vale entonces aquí tenemos una l aquí tenemos una l aquí tenemos una
00:16:00
r perfecto una l una r vale una l una l es decir me está buscando todo lo que sea o una r o una
00:16:10
l perfecto y seguido de que y seguido de una a o de una o de un 1 pues aquí
00:16:21
seguido de un 1 perfecto seguido de una perfecto seguido de una perfecto si
00:16:32
entendéis para qué es un rango sí qué es lo que le puedo decir también
00:16:37
Oye, búscame todo lo que sea del 0 al 9, es decir, búscame todos los caracteres, ¿sí?
00:16:46
Seguido de una arroba y yo qué sé.
00:17:01
Aquí me va a devolver todo, a ver que me ponga yo por aquí.
00:17:08
Y seguido de 19, 19.
00:17:11
Seguido de, por ejemplo, 3 caracteres y un 8
00:17:15
Le voy a decir esto de aquí
00:17:41
¿Qué me devuelve?
00:17:44
Le estoy diciendo, oye, quiero que sea un número del 0 al 9
00:17:45
De forma que un número del 0 al 9
00:17:49
Me está dando un 1, un 5, un 0, un 6, es decir, cualquier número del 0 al 9, un rango, por eso pongo un guión, seguido de tres caracteres, seguido de tres caracteres, 1, 2 y 3.
00:17:53
1, 2 y 3
00:18:14
1, 2 y 3
00:18:16
1, 2 y 3
00:18:19
¿Vale? Me vais viendo
00:18:21
Y seguido de un 8
00:18:22
¿Sí?
00:18:26
Seguido de un 8
00:18:29
Pues seguido de un 8, seguido de un 8, seguido de un 8
00:18:30
Seguido de un 8 y seguido de un 8
00:18:33
¿De acuerdo?
00:18:35
Entonces yo ya puedo juntar el punto con el rango
00:18:37
¿Sí?
00:18:42
¿Y qué pasa si le digo todo lo que no sea un carácter? Pues si yo le pongo la virgulilla, le estoy diciendo que todo lo que no sea un carácter,
00:18:42
Entonces, todo lo que no sea del 0 al 9, así que todo lo que no sea del 0 al 9 va a ser una D, una N, seguido de tres caracteres, 1, 2 y 3, 1, 2 y 3, y seguido de un 8, y seguido de un 8.
00:18:54
Pues aquí tenemos seguido de un 8 y seguido de un 8, ¿de acuerdo?
00:19:20
Entonces, si yo quiero que sea lo que no sea un carácter del 0 al 9, pues tengo que poner dentro, ¿vale?
00:19:26
Dentro del rango tengo que empezar por el gorrito, ¿de acuerdo?
00:19:34
Y es lo contrario de, ¿sí?
00:19:39
Hemos visto el punto y hemos visto el rango.
00:19:43
Ahora nos queda el asterisco.
00:19:45
¿Qué quiere decir el asterisco?
00:19:47
Imaginaros que yo tengo
00:19:49
Le decimos otra vez esto para que yo vea lo que hay
00:19:50
E imaginaros que nosotros le decimos
00:19:54
Quiero que me busques
00:19:56
Y le voy a decir
00:19:58
Que me aparezca la letra A
00:19:59
Repetida cero, una o más veces
00:20:04
¿Sí?
00:20:08
¿Qué pensáis que me va a devolver esto?
00:20:10
Me devuelve
00:20:16
¿Vale?
00:20:17
Fijaros que todas las líneas, pero quiero que, por ejemplo, es que quiero buscar una.
00:20:19
Vale.
00:20:25
En lugar de la A voy a poner una X.
00:20:26
¿Y por qué me devuelve todas las líneas?
00:20:31
Fijaros que me devuelve esta línea. ¿Por qué?
00:20:34
¿Cuántas veces me aparece la X?
00:20:36
Ninguna.
00:20:38
Entonces es la X repetido cero, esto lo cumple, una o más veces.
00:20:39
¿Me seguís?
00:20:46
entonces, cuidado con el poner el asterisco
00:20:47
porque el asterisco es 0, 1 o más
00:20:52
si queréis decirle que aparezca la letra X por lo menos una vez
00:20:55
yo pongo en este caso X y luego X asterisco
00:21:00
para decirle, oye, quiero que me aparezca una X
00:21:04
y luego me aparezca una X 0, 1 o más veces
00:21:07
con eso le estoy diciendo que al menos me aparezca una
00:21:11
¿de acuerdo?
00:21:13
Yo también le puedo decir que me muestre todas las líneas
00:21:16
Y le pongo aquí del 4 al 6
00:21:22
Y que me aparezca repetido 0 una más veces
00:21:27
Entonces fijaros que como le he dicho 0 una más veces
00:21:35
Le he cagado, porque aquí es 0
00:21:40
¿Sí? Del 4 al 6, aquí no hay ni 4 ni 6
00:21:42
¿Que yo le puedo decir esto? Sí, perfectamente
00:21:47
Le digo, oye, quiero que me aparezca del 4 al 6 una vez por lo menos
00:21:50
Y luego, repetido, 0 una más veces
00:21:57
¿Vale? Pues me aparece el 4 y el 6, me aparece el 5, me aparece
00:22:01
¿Me seguís?
00:22:06
Entonces siempre que queráis decirle repetido 0, 1 o más veces
00:22:08
El carácter anterior, es decir, siempre va a ser lo que hay anterior al asterisco
00:22:13
Lo que hay al anterior repetido 0, 1 o más veces
00:22:19
¿Sí?
00:22:22
Vale, ¿qué es lo que me queda?
00:22:25
¿Cómo le puedo decir yo que me muestre todas las líneas que empiezan por una A?
00:22:27
Pues si yo le quiero decir todas las líneas que empiezan por una A
00:22:32
Lo que le pongo es el gorrito
00:22:35
y le digo, uy, perdón, y le pongo una A, ¿qué me hace esto?
00:22:38
Me muestra todas las líneas que empiezan por una A.
00:22:44
¿Qué le quiero decir que me muestren todas las líneas que empiezan por una A o por una V?
00:22:47
Pues me muestran las líneas que empiezan por una A o una V, ¿sí?
00:22:54
¿Cómo le puedo decir las líneas que me terminen por un 3, por ejemplo?
00:22:59
pues siempre va a ser en este caso un 3 y un dólar para decirle tiene que terminar con un 3
00:23:03
si yo le doy, lo he puesto bien, un segundo que no sé que estoy poniendo mal aquí
00:23:11
vale una cosita, no me estaba saliendo porque como copié el ficherito de Windows
00:23:29
no tenía convertido los saltos de carro porque son diferentes, los trata diferente en Windows y Linux
00:23:50
Cuidado cuando copiéis, ¿vale? Entonces, o una de dos, o hacéis el ficherito aquí a pelo, el nanoalumno, ¿de acuerdo? Porque repito, aquí al final, como lo copiéis de Windows, el intro de Windows es diferente al intro de Linux, ¿de acuerdo?
00:23:57
Entonces, cuidado con copiarlo, ¿de acuerdo?
00:24:17
Porque os va a meter dos caracteres especiales.
00:24:20
Entonces, por eso no me encontraba.
00:24:23
¿Sí?
00:24:26
Vale, entonces, una vez que...
00:24:28
Porque he vuelto a crear el ficherito, ¿vale?
00:24:31
El ficherito, pero no lo he copiado de Windows.
00:24:33
Cuidado cuando lo copiéis.
00:24:36
Entonces, fijaros qué hace este comando.
00:24:38
Yo en este comando le he dicho, oye, quiero que me muestre todas las líneas que terminan por una C.
00:24:40
Entonces, fijaros que me está mostrando todas las líneas que terminan por una C
00:24:45
¿Sí?
00:24:50
Oye, quiero que me busques todas las líneas que terminan, en este caso, por un 1 o por una C
00:24:52
Pues me va a mostrar todas las líneas que terminan por un 1 o por una C
00:24:58
¿Sí?
00:25:03
Pero también lo puedo combinar
00:25:04
Oye, quiero que me muestre todas las líneas que empiezan por una A
00:25:06
Que empiezan por una A
00:25:10
y que terminen por uno C.
00:25:17
Pero, ¿por qué aquí no me aparece nada?
00:25:20
¿Qué le estoy diciendo con esto?
00:25:24
Que tiene que empezar por un A,
00:25:25
y después del A me tiene que aparecer un 1 y una C.
00:25:28
Me explico.
00:25:32
Si yo edito el fichero,
00:25:34
voy a añadir A, C, y ya está.
00:25:39
Pongo uno C, por ejemplo.
00:25:45
Si yo le digo esto,
00:25:48
que empieza por una A y que termine por una C, que lo he puesto mal, es AC, que empieza por una A y, por ejemplo, AC.
00:25:51
Entonces, si yo le digo este, me lo muestra. Es decir, le estoy diciendo aquí que tiene que empezar por una A y después de la A tiene que aparecer o un 1 o una C y ya está.
00:26:11
Eso es lo que le estoy diciendo, por eso no me ha encontrado nada
00:26:21
¿Cómo le puedo decir todas las líneas que empiezan por una A
00:26:24
Que luego haya cualquier cosa y que terminen por una C?
00:26:27
Pues yo le puedo decir, oye, quiero que empiecen por A
00:26:31
Hasta aquí bien
00:26:34
Después de la A, tiene que haber cualquier carácter
00:26:35
Pero cualquier carácter repetidas las veces que le dé la gana
00:26:39
Pues para eso le ponemos un punto interrogación, o sea, asterisco
00:26:44
¿Qué le estoy diciendo con eso?
00:26:48
Cualquier carácter repetido cero o más veces
00:26:50
Entonces si yo le doy
00:26:53
Fijaros que ahora me dice
00:26:56
Oye, la letra A empieza por A y termina por C
00:26:58
Empieza por A y termina por C
00:27:02
Y empieza por A y termina por C
00:27:04
Perfecto
00:27:07
¿Sí?
00:27:08
Entonces quiero que lo veáis
00:27:09
Yo aquí
00:27:10
Empieza por A
00:27:13
Seguido, ¿vale?
00:27:16
Esto empieza por A, seguido de, por ejemplo, este de aquí, de 0, 1 o más, 1C hasta aquí, este es hasta aquí, y este de aquí no tiene nada, porque 0, 1 o más, es 0, 1 o más, ¿sí?
00:27:19
Y seguido en este caso de, espérate que no lo hemos seleccionado, esto es 0, 1 o más, seguido de 1, 1, 1, 11 y así termina la cadena.
00:27:42
Así que seguido de 1, 1, 11, seguido de 1, 1, 11 y seguido de 1, 1, 11 y termina.
00:28:02
Entonces, se utiliza mucho el un punto asterisco para indicar cualquier carácter repetida cero, una o más veces.
00:28:09
¿De acuerdo? ¿Sí? ¿Sí? Vale.
00:28:19
Voy a utilizar otro ficherito, por ejemplo, no sé si teníamos aquí...
00:28:25
A ver... Vale, voy a utilizar este ficherito de puntuación.
00:28:34
Sí, voy a utilizar este.
00:28:52
este lo teníamos en otro vídeo
00:28:54
¿qué pasa si yo le quiero decir que me busque
00:28:59
todas las palabras?
00:29:01
voy a editarlo
00:29:03
porque voy a cambiar algunas cositas
00:29:04
y voy a añadir aquí
00:29:06
pongo aquí Carolina está aquí
00:29:09
y le pongo aquí
00:29:18
anatomía
00:29:21
y pongo aquí
00:29:29
o lana
00:29:31
¿Sí? ¿De acuerdo? Estoy poniendo aquí para hacer ejemplos
00:29:35
Tenemos este ficherito
00:29:47
Si yo le digo que me busque, le digo, oye, quiero que me busques todos los sitios donde aparece Ana
00:29:50
Del ficherito puntuación
00:29:59
Y obviamente me muestra todos los ficheritos donde me aparece Ana
00:30:02
¿Sí? Pero, ¿y cómo le puedo decir yo que, por ejemplo, empiece, es decir, que sea una palabra que empiece por Ana?
00:30:07
Que sea una palabra que empiece por Ana. ¿Cómo lo hacemos? Pues, en lugar de decirle que me busque Ana,
00:30:19
para decirle que sea una palabra, una palabra que empiece por, lo que vamos a utilizar es el mayor.
00:30:27
Pero como el mayor es un carácter especial, lo que tenemos que hacer es caparlo. Entonces, ¿qué le estoy diciendo con esto? Fijaros que quiero que veáis lo que me ha mostrado. Fijaros que si le digo que me busque Ana, me ha buscado todo esto, ¿sí?
00:30:35
Pero como yo le he dicho aquí que quiero que me busque las palabras que empiezan por Ana, esta sí que es correcta porque empieza por Ana. Esta empieza por Ana, es una palabra, pero esto no es una palabra que empiece por Ana, de forma que esto no me lo muestra, ¿sí?
00:30:50
En la siguiente, que sí que empieza por ana, también me lo muestra, ¿sí?
00:31:11
Entonces, ¿veis que me pone holana? Holana no me la muestra porque no es una palabra que empiece por.
00:31:18
Pero, ¿y qué pasa si yo le digo que en lugar de que empiece la palabra, que termine la palabra?
00:31:24
Pues, para decirle que termine la palabra, le pongo al final de la palabra este.
00:31:30
Entonces, fijaros que ahora me dice, oye, no que empiece, sino que termine.
00:31:35
Pues esta termina por ana, es una palabra que termina por ana, es una palabra que termina por ana y es una palabra que termina por ana. Pero anatomía no termina por ana. ¿Me seguís?
00:31:40
Y si yo quiero buscar una palabra exactamente la palabra ana, yo le puedo decir, oye, quiero que empieces y termines por ana, así que me busca dónde está ana. La palabra ana, que empieza y termina, ¿vale? Es decir, exactamente la palabra ana. ¿De acuerdo?
00:31:52
¿sí? Y ahora, ¿cómo le puedo decir yo? Me voy otra vez al de antes, alumnos. ¿Cómo le puedo decir yo que me busque las líneas
00:32:10
que contienen el número, por ejemplo, 9 repetido dos veces? Pues yo le puedo decir, oye, quiero que me busques, en este caso, el número 9
00:32:23
y ahora le voy a poner entre llaves el número de veces que quiero que se repita y le digo de
00:32:35
alumnos de forma que un segundo de forma que vale lo tenéis que capar porque son caracteres
00:32:43
especiales en de forma que que le estoy diciendo aquí le estoy diciendo oye quiero que me busques
00:32:55
es el carácter 9 pero quiero que aparezca repetido dos veces así que fijaros 2 2 2 2 2 2 y 2
00:33:03
me seguís yo con esto le puedo decir cuántos cuántas veces quiero que se me repita un número
00:33:21
¿De acuerdo? ¿Sí?
00:33:31
Vamos a ver ahora las expresiones regulares extendidas
00:33:35
Entonces os muestro la transparencia
00:33:39
Y vamos a ver aquí las expresiones regulares extendidas
00:33:42
Es decir, las expresiones regulares extendidas me ofrecen
00:33:47
Un conjunto más amplio de caracteres especiales
00:33:49
Para que yo pueda jugar mejor con ellos
00:33:54
¿Vale?
00:33:55
Entonces, antiguamente se utilizaban varios comandos
00:33:57
como el grep o el f grep vale ahora siempre ha existido esta opción pero bueno por eso la muestro
00:34:01
aquí vale ahora se utiliza si queréis utilizar con el grep las expresiones extendidas tenéis
00:34:09
que utilizar el parámetro guión y mayúscula mayúscula vale si yo utilizo el e mayúscula
00:34:17
voy a poder utilizar la interrogación, el más y la barra vertical.
00:34:24
¿Qué quiere decir la interrogación?
00:34:30
La interrogación quiere decir un carácter, solo uno, ¿vale?
00:34:32
Cero o una vez, es decir, algo opcional.
00:34:37
¿Qué le estoy diciendo aquí?
00:34:41
Me digo, oye, quiero que me busques lo que contiene color
00:34:43
y luego que puede o que no puede que haya un carácter seguido de una R.
00:34:46
Así que, obviamente, el que me va a aparecer el carácter anterior, ¿eh?
00:34:54
Entonces, de esta manera, le estoy diciendo que la U puede ser opcional o no.
00:35:00
Eso es lo que le estoy diciendo, ¿vale?
00:35:06
Cero o una veces.
00:35:08
El carácter anterior, cero o una más.
00:35:09
Cero o una, no cero más, perdón.
00:35:12
Cero o una vez.
00:35:15
Es decir, es un carácter opcional, que puede estar o que no puede estar.
00:35:15
De forma que colo seguido de cero o más una U.
00:35:19
si puedo poner un más y el más que quiere decir esto es como el asterisco lo que pasa que el
00:35:24
problema por decirlo de alguna manera que tenía el asterisco es que era cero o más pues resulta
00:35:31
que el más quiere decir una o más veces es decir la tecla d vale repetida una o más veces
00:35:36
entonces en lugar de poner como lo poníamos antes con el asterisco de y luego de asterisco pues
00:35:47
esto se soluciona poniendo de y un más diciendo oye tiene que aparecer por lo menos una vez y
00:35:53
luego ya las veces que te dé la gana sí y si estamos utilizando las expresiones extendidas
00:35:58
puede utilizar la barra vertical para indicar uno que quiere decir este ejemplo de aquí le
00:36:04
estoy diciendo quiero que me busque las líneas que contienen gray o grey entonces me va a buscar
00:36:09
todas las líneas donde aparece gray o donde aparece gray. ¿De acuerdo? ¿Sí? Vale. Si estoy utilizando
00:36:15
expresiones regulares, ¿os acordáis que yo podía poner entre corchetes el número de veces que quiero
00:36:24
que se me repita? Pues aquí igual, puedo poner el número de veces que quiero que se repita, pero
00:36:30
además voy a poder poner un n y una coma para decirle que aparezca n o más veces si pongo una
00:36:36
coma y un m quiere decir que como mucho m veces y si quiero decir aquí por ejemplo 5 y 8 que
00:36:47
aparezca entre 5 y a lo máximo 8 veces pues pongo n coma m vale 5,8 puedo especificar un rango de
00:36:54
Vamos a ver los ejemplos. Si nosotros nos vamos aquí a las expresiones regulares extendidas, ponemos grep menos e y por ejemplo le vamos a decir que quiero que me busque, esperaros que para que haga ejemplo, vamos a decirle por ejemplo quiero que me muestres.
00:37:03
Voy a utilizar expresiones extendidas y le voy a decir que quiero que me aparezca, por ejemplo, que sea una A, seguido de una Z, pero de manera opcional, y seguido de una C o una O.
00:37:35
A ver qué nos muestra.
00:38:02
Le digo, a ver, me voy aquí. Tiene que ser una A. Y aquí empieza por una A, ¿verdad?
00:38:10
Seguido opcionalmente de una Z. Opcional quiere decir que no la hay. Seguido de una C, una A. Pues perfecto.
00:38:17
A C es opcional porque la Z no está. Es opcional. Aquí una A seguido de una Z, seguido de una O. Perfecto.
00:38:22
Y aquí una A seguido de nada porque la Z es opcional, seguido de una C. ¿Sí?
00:38:30
Entonces, la interrogación es para decirle que el carácter que hay delante es opcional.
00:38:36
Le puedo decir, oye, quiero que me busques todas las líneas donde aparezca la letra A repetida, o por ejemplo, la letra V repetido una o más veces.
00:38:42
Fijaros que si yo le digo aquí un asterisco, son cero, y me muestra todas.
00:38:58
Si yo le digo que me aparezca al menos una vez, le pongo el más, ¿sí?
00:39:03
Y también le puedo decir que quiero que me busques, digo, oye, quiero que me busques todas las líneas donde aparece SMRC o SMRA.
00:39:10
y esto me falta ponerlo entre llaves
00:39:29
si lo he escrito mal, perdonadme
00:39:35
SMRC
00:39:43
y me muestra las líneas que contienen
00:39:45
o SMRC o SMRA
00:39:49
y entonces para eso tenemos el
00:39:52
el pipeline
00:39:54
la barra vertical
00:39:57
yo con esto puedo jugar y buscar todas las expresiones
00:39:59
regulares que a mí me dé la gana vale estoy oye quiero que me busques por
00:40:04
ejemplo vamos a hacer algún alguno que haya que pensar quiero que me busque
00:40:10
todos los alumnos que por ejemplo cuyo nombre empiece por una cuyo nombre
00:40:17
empiece por lo que no sea una vocal vale vamos a empezar por ahí vamos a
00:40:32
decirle quiero que me busques todo lo que no empieza por una vocal a e i o u y vamos a ver
00:40:40
si uy perdón si no lo he hecho el fichero y vamos a ver si esto no funciona y lo dicho mal que esto
00:40:53
tiene que estar dentro todo lo que no sea todo lo que no sea sí y le quiero decir que empiece
00:41:01
por, pues que empiece por. Así que esto me muestra todo lo que no empieza por una vocal, ¿vale? Este
00:41:08
quiere decir que empieza por y lo que hay dentro del rango, lo que no sea una vocal, ¿sí? Y tenemos
00:41:19
aquí todo lo que no empieza, ¿sí? Ahora, quiero que tenga, por ejemplo, pues yo qué sé, quiero que se
00:41:25
llame, por ejemplo, cuyo nombre empiece por una M o por una A, cuyo nombre empieza por
00:41:44
una M o por una A, ¿sí? Entonces, ¿qué le voy a decir? Digo, vale, estoy aquí, que
00:41:58
empieza por una letra, luego tengo que llegar hasta aquí. ¿Cómo le digo este rango? Digo,
00:42:04
Oye, pues mira, tiene que aparecer, por ejemplo, cualquier carácter repetido cero o una más veces,
00:42:11
seguido por almohadilla, seguido de cero o un más carácter, seguido de almohadilla.
00:42:23
Es decir, el primero sería este, el segundo sería este.
00:42:33
Y estoy ya en el nombre.
00:42:39
y seguido por, hemos dicho que empiece por una A o por una M, y lo probamos, y lo tenemos aquí, dice, oye, empieza por una A, quiero que lo veáis, empieza por una A o empieza por una M, empieza por una A o empieza por una M, ¿sí?
00:42:41
Entonces fijaros que esto se puede empezar a complicar todo lo que nosotros queramos
00:43:03
Y además quiero que sea del grupo dual 3
00:43:09
Pues como le digo que sea del dual 3
00:43:14
Pues le digo que después de esto haya 0 o más caracteres y que termine en dual 3
00:43:17
Y le pongo el dólar
00:43:26
Y aquí tenemos solamente las líneas que a mí me interesan
00:43:28
Que no empiece por una vocal, que el nombre empiece por una A o por una M, Marta y Alain, y que sean del grupo Dual3.
00:43:32
Y yo aquí puedo complicarlo todo lo que me dé la gana.
00:43:42
¿Sí? ¿De acuerdo?
00:43:46
Vale, pues vamos a ver del comando grep, porque ya sabemos cómo funciona, pero vamos a ver algunas funciones que nos pueden interesar.
00:43:49
Aquí sí que hay una aclaración que no hemos visto el rango. Voy a editar en este caso el nano alumnos y voy a poner aquí lo de hola, hola, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4 y 5.
00:43:57
Ahora, ¿qué pasa si yo le digo que me busque, en este caso, la letra A y le voy a poner aquí repetido tres veces? Pues me pone una, dos y tres. Repetido tres veces.
00:44:18
¿Qué pasa si yo le digo que aparezca como mucho tres veces?
00:44:38
Aquí fijaros que me pone como mucho porque me ha buscado dos veces, por eso me pone aquí, me pone esto, porque son 1, 2 y 3, y luego empieza 1, 2 y 3, y luego empieza 1, 2 y 3.
00:44:46
¿Qué pasa si yo le digo que quiero que me busque entre 2 y 3? Pues me busca entre 2 y 3.
00:44:59
O quiero que me busque entre 3 y 5. Pues entre 3 y, como mucho, 5. Pues me busca entre 3 y 5. Que sean más de 3. Pues que sean más de 3. ¿Vale? O sea, 3 o más, perdón. Pues yo le puedo poner un rango en el que quiero que me busque. ¿De acuerdo?
00:45:05
vale, pues lo dicho, vamos a ver
00:45:24
que opciones tenemos del comando
00:45:26
grep, que nos quedan por ver
00:45:28
entonces, aquí
00:45:30
cuando nosotros ponemos, veis que
00:45:32
nos aparece las cosas en color
00:45:34
porque directamente estamos
00:45:36
utilizando
00:45:38
el grep-color
00:45:39
para que los patrones que le encuentre
00:45:42
directamente me los
00:45:45
muestra en color, si
00:45:46
ejemplos que tenemos
00:45:48
aquí, fijaros que si yo
00:45:50
pongo el guion v
00:45:52
el guión v le estoy diciendo quiero que me busques lo que no coincide con el patrón lo que no coincide
00:45:53
con el patrón sí y sin utilizar las expresiones regulares si queréis buscar para que sea todo lo
00:46:02
que sea cat o todo lo que sea doc tenéis que poner la opción guión y esto para decirle quiero que me
00:46:10
busque esto o quiero que me busques esto las líneas que contienen o la e perdón o cat o la
00:46:15
líneas que contienen toc si estamos utilizando las expresiones regulares
00:46:22
extendidas ya sabéis que poner la barra vertical y ponéis cat o dos si si yo me
00:46:25
voy si yo me voy aquí y le digo oye quiero
00:46:31
que me busques por ejemplo os acordáis bueno estoy aquí quiero que me busque
00:46:37
todas las líneas si yo le digo que quiero que me busques todas las que no
00:46:41
le pongo raya v y me busca todas las que no coincidan con ese patrón es lo
00:46:46
contrario de de acuerdo
00:46:53
vale vamos a ver más más opciones que nosotros tenemos de aquí
00:46:57
si no queréis que diferencia entre mayúsculas y minúsculas en la expresión
00:47:01
regular me ponéis un guión y esto ya lo hemos visto para buscar lo contrario y
00:47:05
este es utilísimo me dice oye aplica la búsqueda a los datos vale de forma recursiva a todos los
00:47:10
ficheros y directorios ahora vamos a hacer un ejemplo si me voy a los que me interesan vale
00:47:19
porque esto no lo voy a preguntar porque le puedo decir que me muestre los números después de la
00:47:25
coincidencia las líneas que hay de antes o la línea que después esto ya hemos visto sí que si
00:47:30
Quiero poner un ológico, hemos visto que por defecto me muestra los patrones en color,
00:47:35
pero le puedo decir que me diga cuántas líneas coincide con el patrón, ¿sí?
00:47:41
O que me muestre el número de líneas, o que me muestre el nombre del fichero que contienen.
00:47:47
O que me diga que me busque las palabras.
00:47:53
En lugar de poner el mayor y el menor, como hacíamos antes en la expresión regular,
00:47:55
si yo pongo guión v, v doble, me busca las palabras, ¿sí?
00:47:59
Y terminamos con estos de aquí, os he puesto todas porque lo vais a necesitar para lo de lino sesential, que queréis las líneas enteras, es decir, línea entera que si yo quiero buscar en este caso Fernando Herrero, pues pongo guión x Fernando Herrero y me busca lo que la línea entera que sea Fernando Herrero, ¿sí?
00:48:03
Si yo le digo que solamente me muestre los nombres de los ficheros, guión en E, ¿vale? Le puedo decir que después de encontrar cinco líneas, cinco coincidencias, se pare. O le puedo decir que me muestre solamente las coincidencias o que no me muestre los errores o que me muestre, en este caso, las cabeceras de los nombres o que no me muestre las cabeceras de los nombres de los ficheros, ¿sí?
00:48:24
Y estas tres que son las que se utilizaban antes para utilizar expresiones regulares extendidas, para decirle que me busque en este caso exactamente lo que yo le diga, es decir, no me sirve lo del asterisco, no me sirve, no me funciona ninguno de los caracteres especiales.
00:48:50
Me explico. Ahora vamos a hacer ejemplos. ¿Vale? Porque estos son ejemplos ya para que vosotros lo podáis ver. Imaginaros que yo tengo lo siguiente. Y soy rapidito para que no se me vaya el tiempo que se me está yendo.
00:49:11
Si yo le digo que quiero que me busque y le digo que quiero que me busque lo que empieza por una A, pero si yo no quiero que distinga entre mayúsculas y minúsculas, quiero que veáis que me aparece esta línea.
00:49:27
Si yo quiero que me muestre, por ejemplo, las líneas que contienen, le digo guión E y le digo, yo qué sé, castillo O, le digo que me muestre las líneas que contienen SMRC, ¿vale?
00:49:51
que estaba escribiendo mal, pues en este caso
00:50:25
me va a buscar o lo que contiene en castillo o lo que contiene en SMRC
00:50:29
¿si? pero hay otras que nos pueden interesar
00:50:33
como es la siguiente, si yo le digo
00:50:37
esto, me muestra las líneas, si le quiero decir que me muestre
00:50:41
cuantas hay, pues le pongo C y me dice que hay 5 líneas
00:50:45
si quiero en lugar de decirle que me diga cuantas hay, que me las
00:50:49
números, pues me dice en qué línea está, también nos puede resultar útil
00:50:53
¿sí? pero si en lugar de todo esto yo le digo
00:50:57
la L, simplemente me dice el fichero que ha encontrado
00:51:01
¿por qué esto es interesante? pues para lo siguiente, por ejemplo, imaginaros
00:51:05
que yo le quiero decir que quiero que me busque en el
00:51:09
directorio y escañaveral
00:51:13
en todos los ficheros, de manera recursiva
00:51:15
pues quiero que me busque
00:51:21
por ejemplo
00:51:24
yo que sé
00:51:26
mil novecientos
00:51:32
mil
00:51:34
mil novecientos
00:51:35
ochenta y siete
00:51:39
por ejemplo, ¿vale?
00:51:41
entonces este me va a buscar en todos los ficheros
00:51:44
y fijaros que me está buscando en todos los sitios
00:51:46
y quiero que veas que me dice, mira, el nombre del fichero
00:51:49
y la línea que ha encontrado
00:51:53
el nombre del fichero y la línea que ha encontrado
00:51:56
¿sí?
00:51:59
si yo le digo que en lugar de que me muestre el contenido
00:52:01
que solamente quiero ver el nombre de los ficheros
00:52:04
pues solamente me dice los ficheros donde lo ha encontrado
00:52:07
entonces hay veces que no puede resultar útil
00:52:10
¿sí?
00:52:12
vale
00:52:15
también teníamos
00:52:15
el puntuación
00:52:17
si yo le digo que quiero que me busque
00:52:21
y le digo el raya W
00:52:27
y le digo Ana
00:52:29
de puntuación
00:52:30
pues me muestra donde
00:52:35
está la palabra Ana
00:52:39
que esto
00:52:41
y acordaros que si yo pongo
00:52:43
esto
00:52:46
es lo mismo, ¿vale?
00:52:56
porque sepáis que tenéis esas posibilidades
00:52:58
¿de acuerdo?
00:53:00
Que yo le quiero decir, oye, quiero que me busques, yo que sé, quiero que me busques, por ejemplo, hola, ¿sí? Esto me muestra hola, hola Ana, de puntuación, no, perdón, de alumnos.
00:53:01
alumnos y me muestra eso si yo le pongo aquí un guión x me busca exactamente la
00:53:37
línea que contiene o la sólo sólo eso si yo le digo por ejemplo guión o pues
00:53:46
fijaros que solamente me está mostrando la coincidencia decir todo lo demás no
00:54:00
me lo muestra de acuerdo todo eso me lo quita de acuerdo he puesto un ejemplo más significativo
00:54:12
quiero que miréis estas dos líneas vale porque quiero que vean la importancia de capar no capar
00:54:21
veis que me pone esto es y he puesto entre asterisco asterisco el asterisco final y he
00:54:27
puesto esto es y he puesto asterisco o el final sí qué pasa si yo ejecuto este de aquí le oye
00:54:33
quiero que me busques porque quiero buscar exactamente esto asterisco hola asterisco
00:54:40
si yo le doy fijaros que este primero no me ha puesto bien porque me ha puesto aquí veis que
00:54:46
esto está en negro quiere decir que no está dentro del patrón no me lo está buscando bien y encima el
00:54:52
de abajo también me lo pone y es mentira lo veis qué pasa si yo le digo en lugar de esto lo que
00:54:57
hago es capar para decirle que el asterisco no lo trate como si fuese un
00:55:08
carácter especial y ahora sí que me lo me lo encuentra si otras opciones que
00:55:15
podemos probar si yo pongo el guión efe pues también me lo pone porque me lo
00:55:21
trata tal cual es decir los asterisco ya no nos trata igual vale entendéis esto
00:55:26
porque si yo no pongo eso repito me está considerando el asterisco como
00:55:32
caracteres especiales que son lo que son para hacer las expresiones regulares
00:55:37
de acuerdo vale pues con esto que se me ha ido la hora terminamos la parte de
00:55:41
búsquedas tenemos los de recuerdo el locate el fine y el grep muy útiles de
00:55:47
acuerdo si venga un saludo
00:55:53
- Idioma/s:
- Autor/es:
- Fernando Herrero Núñez
- Subido por:
- Fernando Jesús H.
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 34
- Fecha:
- 31 de diciembre de 2022 - 13:01
- Visibilidad:
- Público
- Centro:
- IES EL CAÑAVERAL
- Duración:
- 55′ 57″
- Relación de aspecto:
- 1.85:1
- Resolución:
- 1920x1040 píxeles
- Tamaño:
- 179.61 MBytes