1 00:00:01,219 --> 00:00:05,179 Bueno, pues vamos a ver los filtros que nos ofrece Linux. 2 00:00:05,879 --> 00:00:08,099 Tenemos unos cuantos filtros que ya conocíamos. 3 00:00:08,380 --> 00:00:16,100 Pues el comando more de un fichero que me muestra el fichero paginado y el let que me muestra el fichero paginado, 4 00:00:16,559 --> 00:00:19,239 que ya habíamos visto en otras ocasiones. 5 00:00:19,500 --> 00:00:20,859 A esto le vamos a dar importancia. 6 00:00:21,320 --> 00:00:28,679 Pero este fichero, este comando es muy chulo, porque este comando lo que te hace es que compara dos ficheros línea a línea. 7 00:00:28,679 --> 00:00:50,119 Vamos a hacer una prueba. Si yo, por ejemplo, tengo saludo, ¿no? Voy a hacer una copia de saludo en saludo2. Y voy a modificar saludos con nano y le voy a poner detrás de la variazas. 8 00:00:50,119 --> 00:01:08,760 ¿Vale? Entonces, estos ficheros son muy parecidos, pero tienen una diferencia en una línea. ¿Vale? Lo guardo y lo tengo. Os recuerdo, voy a hacer un clear para que quede más clarito, os recuerdo que tengo saludo y saludo 2. 9 00:01:08,760 --> 00:01:15,859 Muy bien, pues ahora Rodríguez, encuéntrame las diferencias entre saludo y saludo 2. 10 00:01:16,459 --> 00:01:22,379 Perfecto, y me está diciendo aquí, en esta primera línea te encuentro esta diferencia, ¿vale? 11 00:01:22,439 --> 00:01:23,439 Y lo demás está ok. 12 00:01:23,879 --> 00:01:28,879 Ahora vamos a ver otro comando súper útil, que es el comando grep. 13 00:01:29,120 --> 00:01:31,939 El comando grep es el equivalente al find de Windows. 14 00:01:32,140 --> 00:01:33,040 ¿Y qué es lo que hace? 15 00:01:33,040 --> 00:01:52,439 El comando grab me busca una cadena en uno o varios ficheros. Como veis aquí, tiene opciones entre corchetes, quiere decir que son opciones opcionales, valga la redundancia, y los archivos pueden ser un archivo, pueden ser varios. 16 00:01:52,439 --> 00:02:01,180 Vamos a jugar un poquito con el fichero ventas. Os voy a enseñar un poco qué formato tiene, qué contenido tiene, porque es con el que vamos a trabajar. 17 00:02:04,260 --> 00:02:15,319 Este fichero ventas, que si hacemos un FEA-15, por ejemplo, de ventas, tenéis esta información. 18 00:02:15,319 --> 00:02:36,659 Bien, os cuento lo que son las líneas. Normalmente, en los ficheros, esto es para trabajar, entre otras cosas, con ficheros de datos, en los que los datos, cada campo, cada línea, es un registro diferente, como si fuera una base de datos, y en cada línea tienes los campos delimitados por un delimitador. 19 00:02:36,659 --> 00:02:49,520 En este caso, el delimitador de cada campo es el punto y coma. Habitualmente, en estos ficheros, la primera línea te indica los campos y luego, a partir de la segunda, tienes el contenido. 20 00:02:50,139 --> 00:03:00,340 Nosotros, con esto, con un sistema muy sencillo, como se guarda en CCV, se puede subir un Excel, se puede subir a Access, se puede subir a una base de datos, siempre y cuando tenga una forma de importarla. 21 00:03:00,340 --> 00:03:15,800 Y se hace sin problemas, ¿vale? Entonces, este comando de ventas son las ventas de, fijaros, hace un montón de tiempo, de especias, ¿vale? Entonces, tenemos aquí un comercial que se llama Pedro Martínez, que vendió estragón. 22 00:03:15,800 --> 00:03:18,840 lo que consiguió, digamos 23 00:03:18,840 --> 00:03:20,900 el precio por el que vendió 24 00:03:20,900 --> 00:03:22,879 todo el estragón es todo este dinero 25 00:03:22,879 --> 00:03:24,500 que supongo que serían pesetas 26 00:03:24,500 --> 00:03:27,120 los gastos que tuvo el comercial 27 00:03:27,120 --> 00:03:29,259 fue aquí, en qué país, en Canadá 28 00:03:29,259 --> 00:03:30,960 este buen hombre vendió en Canadá 29 00:03:30,960 --> 00:03:33,219 estragón en esta fecha 30 00:03:33,219 --> 00:03:35,439 y el día de la semana era un sábado 31 00:03:35,439 --> 00:03:37,360 ¿vale? Luego veis por aquí 32 00:03:37,360 --> 00:03:39,240 a Carmen que también ha vendido estragón 33 00:03:39,240 --> 00:03:41,520 que han vendido comino, todo es esto 34 00:03:41,520 --> 00:03:43,199 entonces, la idea 35 00:03:43,199 --> 00:03:45,020 con el comando GREP y con este fichero 36 00:03:45,020 --> 00:03:49,819 que vamos a jugar a hacer búsquedas, es muy parecido a hacer un seller de SQL, ¿vale? 37 00:03:50,280 --> 00:03:57,180 Vamos a ver las ventas de Estragón, ¿vale? Entonces hacemos grep y buscamos Estragón 38 00:03:57,180 --> 00:04:04,539 en ventas 2.txt y me salen estas ventas. ¿Veis que me aparece este error? ¿Vale? Para 39 00:04:04,539 --> 00:04:09,740 que lo tengáis en cuenta a la hora de la práctica. Es que tengo un problema con el 40 00:04:09,740 --> 00:04:14,500 formato del fichero, entonces tenéis que poner la opción menos a. Si busquéis este error 41 00:04:14,500 --> 00:04:16,560 en Google 42 00:04:16,560 --> 00:04:18,439 os va a decir que tengo que poner la opción 43 00:04:18,439 --> 00:04:19,939 menos A. Entonces, si yo la pongo 44 00:04:19,939 --> 00:04:22,439 Gres menos A, ¿vale? Esto ponedlo 45 00:04:22,439 --> 00:04:24,279 vosotros para que os funcione en casa, ¿vale? 46 00:04:24,660 --> 00:04:26,500 Gres menos A me salen todas las ventas 47 00:04:26,500 --> 00:04:28,259 de Estragón, ¿vale? Porque todas 48 00:04:28,259 --> 00:04:30,300 estas que pone España y todo eso 49 00:04:30,300 --> 00:04:32,100 se las salta, me da ese error. 50 00:04:32,579 --> 00:04:34,319 ¿De acuerdo? Estas son las ventas 51 00:04:34,319 --> 00:04:36,019 de Estragón. Ahora, 52 00:04:36,579 --> 00:04:38,459 quiero ver las ventas de Italia, pues 53 00:04:38,459 --> 00:04:40,180 en vez de poner Estragón 54 00:04:40,180 --> 00:04:42,480 pondría Italia. 55 00:04:45,290 --> 00:04:45,810 ¿Vale? 56 00:04:45,810 --> 00:05:03,850 Y si quiero ver las ventas de estragón en Italia, puedo hacer un pipe, ¿verdad? Si yo a las ventas de estragón o a las ventas de Italia quiero extraer solamente las líneas en las que ponga estragón, yo puedo coger y filtrar también por estragón. 57 00:05:03,850 --> 00:05:28,589 Es decir, yo tengo Italia y es el resultado. En lugar de guardar en un fichero, se lo paso al pipe y hago nuevamente un grep menos a estragón. Y no pongo ningún fichero aquí, ¿vale? Porque el ficherito que vendría aquí es el que me viene por el pipe, ¿vale? Y aquí me salen las ventas de Italia y estragón. 58 00:05:28,589 --> 00:05:50,050 Solamente me marcan rojo el último GREP que he hecho. Ahora, imaginaos que quiero sacar las ventas de fragón en Italia los sábados, porque quiero ver si trabajaba en fin de semana. Pues tendría que poner otro PAI de GREP menos A el sábado. 59 00:05:50,050 --> 00:06:04,790 las ventas de estragón en italia vale podríamos jugar con el país e ir filtrando según nosotros 60 00:06:04,790 --> 00:06:12,810 queramos con la información que tenemos vale bien ahora el comando web tiene otra cosa muy 61 00:06:12,810 --> 00:06:18,230 interesante que son las posibles opciones que tenemos vale vamos a verlas en las transparencias 62 00:06:18,230 --> 00:06:26,209 ya las probamos aquí porque aquí hemos puesto tal cual pasa bien en el cual está escrito en 63 00:06:26,209 --> 00:06:31,730 el fichero hemos puesto mayúsculas y minúsculas pero nos va a interesar poder jugar un poco con 64 00:06:31,730 --> 00:06:36,750 las mayúsculas y minúsculas y otras opciones vale entonces vamos a ver las igual que ocurría con 65 00:06:36,750 --> 00:06:43,490 país vamos a empezar muy bien empezamos con el menos y que tenéis aquí menos y no distingue 66 00:06:43,490 --> 00:06:50,089 mayúsculas de minúsculas vale perfecto aquí lo que hago es que me da igual como lo escriba él 67 00:06:50,089 --> 00:06:55,009 no lo distingue y me coge todo es decir si tal ya tengo todo en mayúsculas me lo coge si lo tengo 68 00:06:55,009 --> 00:07:00,470 todo en minúsculas me lo coge y si me lo tengo solamente la primera en mayúsculas también otra 69 00:07:00,470 --> 00:07:09,589 opción muy chula menos se menos se de contar en lugar de salirme las líneas me sale el número de 70 00:07:09,589 --> 00:07:11,490 registros que cumplen esa condición. 71 00:07:12,129 --> 00:07:13,790 El menos V lo que hace es 72 00:07:13,790 --> 00:07:15,689 que es un NOT. Es decir, 73 00:07:15,910 --> 00:07:17,649 me imprime, me busca 74 00:07:17,649 --> 00:07:20,089 justamente lo que no cumple la condición. 75 00:07:20,649 --> 00:07:21,850 Entonces, menos 76 00:07:21,850 --> 00:07:23,850 I, no distingue mayúsculas de minúsculas, 77 00:07:23,990 --> 00:07:25,889 es que normalmente nos va a interesar ponerlo, 78 00:07:26,329 --> 00:07:27,629 menos C, en lugar 79 00:07:27,629 --> 00:07:29,889 de salirme las 80 00:07:29,889 --> 00:07:31,930 líneas, me sale 81 00:07:31,930 --> 00:07:33,670 el número, y menos 82 00:07:33,670 --> 00:07:36,170 V, me sale justo lo que 83 00:07:36,170 --> 00:07:37,209 no he puesto en la condición. 84 00:07:37,209 --> 00:07:56,709 ¿Vale? Vamos a ello. Vamos a empezar por Italia, ¿vale? Entonces voy a hacer un grep de menos a, porque ya hemos dicho que por el formato tengo que poner menos a, menos i, para que no me distinga mayúsculas de minúsculas, y aquí pongo Italia, ¿vale? Y era de ventas, dos puntos de piste. 85 00:07:56,709 --> 00:08:13,889 Me salen todas las letras de Italia. Empiecen como empiecen, pero si yo no pongo el menos i, me va a salir ninguna, porque él me está buscando, decimos, hemos quedado que distingue mayúsculas de minúsculas. Entonces, es Italia en minúsculas, ¿vale? 86 00:08:13,889 --> 00:08:37,220 Lo mismo me pasaría con sábado. No me lo cogería, pero si pongo aquí la opción menos sí, veis que antes solo es separado, pero cuando un comando de líneas tiene opciones que son solo una letra, se pueden poner juntitas. ¿Vale? Y da igual el orden. Pues aquí me ha pillado los sábados. Hasta aquí bien. 87 00:08:37,220 --> 00:08:56,460 Vale, pues ahora quiero que me saque justamente los que no son sábado, ¿vale? Las ventas que no se han hecho en sábado. Es decir, que se han hecho el lunes, el martes, el miércoles, el jueves, el viernes y el domingo. Pues es el menos V, ¿vale? Bien, por ahí no va a haber tenido ningún sábado. 88 00:08:56,460 --> 00:09:21,279 Ahora, si en lugar de querer ver las ventas, quiero ver el número de ventas que no se han hecho el sábado, pondría una C, ¿vale? Porque C es de contar. Y en este caso me saldrían todas estas, ¿vale? Si yo quitara el menos V, me saldrían justamente las que se han hecho el sábado. 89 00:09:21,279 --> 00:09:44,480 ¿Habéis visto qué chulo? ¿Vale? Vamos a avisar el piso. Y si yo quiero saber el número de ventas que se han hecho en Italia los sábados, ¿vale? Yo quiero mirar el número de ventas que se han hecho en Italia los sábados. 90 00:09:44,480 --> 00:10:05,190 Entonces, ya sé cómo sacar Italia. Ya sé cómo sacar sábado. Aquí me salen las ventas que se han hecho en Italia el sábado. Pero yo quiero el número de ventas que se hacen el sábado. 91 00:10:05,190 --> 00:10:25,750 Es decir, yo no quiero estas líneas, quiero que me las cuente. Con lo que tengo que hacer, en el último comando, en el último, pongo una C. Es decir, aquí me sacan las vitalias. Las vitalias se le pasan a este segundo comando, y este segundo comando las cuenta. ¿Vale? 21. 92 00:10:25,750 --> 00:10:32,649 ojo con esto porque siempre tenéis que cometer este error porque como os pregunto cuántas ventas 93 00:10:32,649 --> 00:10:42,190 de de yo que sé de comino se hacen los se han hecho en canadá como veis el cuántas el primero 94 00:10:42,190 --> 00:10:52,429 me ponéis el menos en el principio vale entonces si vosotros hacéis esto vale simplemente cambiado 95 00:10:52,429 --> 00:10:58,529 hacer el sitio veis aquí lo que me va a devolver es el número de ventas que hay en italia si yo 96 00:10:58,529 --> 00:11:12,100 lo si lo veis si hago esto esto me devuelvo un 150 si yo pretendo hacerle a esto a este 150 97 00:11:12,100 --> 00:11:18,120 le intento buscar el sábado me dice que no que no me encuentra nada y si pongo dos de contar 98 00:11:18,120 --> 00:11:20,059 me dice que cero 99 00:11:20,059 --> 00:11:21,740 pelotero. ¿Vale? ¿Entendéis? 100 00:11:22,120 --> 00:11:23,899 O sea, yo lo que hago es cuando quiero sacar 101 00:11:23,899 --> 00:11:25,480 el número tiene que ser el último 102 00:11:25,480 --> 00:11:27,919 porque en los anteriores lo que tengo 103 00:11:27,919 --> 00:11:29,779 que ir filtrando. O sea, yo de 104 00:11:29,779 --> 00:11:31,860 mi bolsa saco todas 105 00:11:31,860 --> 00:11:34,059 las italianas. Pumba, las saco fuera de las italianas. 106 00:11:34,399 --> 00:11:35,960 Ahora me he creado una nueva bolsa que está 107 00:11:35,960 --> 00:11:37,980 en el bajo. De esa bolsa 108 00:11:37,980 --> 00:11:40,120 de Italia, pumba, saco 109 00:11:40,120 --> 00:11:42,000 los sábados. Y ya que 110 00:11:42,000 --> 00:11:43,899 los he sacado, los cuento. Un, dos, tres, 111 00:11:43,960 --> 00:11:46,039 cuatro, cinco, seis. ¿Vale? 112 00:11:46,039 --> 00:11:57,340 Porque si yo en mi bolsa de ventas me dice, ¿cuánto es esta italia? Siete. Entonces, a la segunda bolsa le estoy pasando un siete. Cuando intento buscar sábado, no encuentro sábado por ningún lado, solo encuentro siete. 113 00:11:57,960 --> 00:12:12,620 Vamos a ver otras opciones que no tienen que ver con esto, pero que son muy curiosas. No sé si habréis visto la posibilidad de obtener los ficheros cuyo contenido aparezca en una determinada cadena. 114 00:12:12,620 --> 00:12:24,039 Es decir, imaginaos que yo quiero buscar dentro de mi directorio todos los ficheros que me liste, que me liste los ficheros que en su contenido ponga a volar. 115 00:12:24,539 --> 00:12:28,980 Para eso está la opción "-l", "-l de listar". 116 00:12:28,980 --> 00:12:32,279 Mostra el nombre de los ficheros que contienen la cadena. 117 00:12:33,480 --> 00:12:33,679 ¿Vale? 118 00:12:33,919 --> 00:12:35,039 Vamos a ver el ejemplo. 119 00:12:35,039 --> 00:12:37,720 hago un l, digo perdón 120 00:12:37,720 --> 00:12:39,059 un grep menos 121 00:12:39,059 --> 00:12:41,320 a, porque os acordáis lo que pasaba 122 00:12:41,320 --> 00:12:43,879 menos l y la cadena que pongo 123 00:12:43,879 --> 00:12:45,639 hola, ¿vale? 124 00:12:46,080 --> 00:12:47,820 y lo busco en todo 125 00:12:47,820 --> 00:12:49,720 en todo el árbol de directorios 126 00:12:49,720 --> 00:12:54,220 me dice primero, ojito, que enlace simbólico 127 00:12:54,220 --> 00:12:55,879 no es un fichero directorio, ¿vale? 128 00:12:56,820 --> 00:12:57,700 que es un enlace 129 00:12:57,700 --> 00:12:59,980 y ahorita me aparece en todos estos 130 00:12:59,980 --> 00:13:01,700 ficheros, ¿vale? 131 00:13:02,500 --> 00:13:03,480 esto está muy chulo 132 00:13:03,899 --> 00:13:10,320 Ahora, si yo quisiera que me buscara, me listara, pero no en el directorio en el que estoy. 133 00:13:10,480 --> 00:13:16,679 Aquí, por ejemplo, podría poner, igual que pongo a este disco, podría poner salud. 134 00:13:17,000 --> 00:13:22,779 Todos los metacarácteres que hemos trabajado se trabajan aquí, en el GREP, en todos. 135 00:13:22,779 --> 00:13:28,860 Cuando yo os digo un pizero concreto es que podéis usar todo, incluso un directorio y todos sus subdirectorios. 136 00:13:29,000 --> 00:13:30,039 Todo eso se puede utilizar. 137 00:13:30,039 --> 00:13:59,740 Si yo pongo aquí, solamente me van a salir estos dos, porque estoy utilizando metacaracteres, ¿vale? Bien, si yo quisiera, por ejemplo, del directorio padre, a partir del directorio padre, que me buscara, o sea, yo estoy en Barrajón, Susana, ¿vale? Pues quiero que a partir de Barrajón me busque todos los ficheros que tengan dentro de su contenido la palabra hola, ¿vale? La cadena de caracteres hola. 138 00:14:00,039 --> 00:14:27,899 ¿Vale? Y pongo asterisco, por ejemplo. ¿Qué pasa? Aquí solamente, si pongo esto tal cual, solamente me va a buscar en barra home. ¿Vale? Pero yo quiero que me busque en barra home y todos sus subdirectorios. Si queréis, os enseño qué hay en barra home. Ls, barra home. ¿Vale? Que tenéis esto. Entonces, yo quiero que baje por administrador, por alugazo, por profe y por Susana. Me va a dar errores, ¿eh? Me va a dar errores. ¿De acuerdo? Porque yo no puedo entrar en ninguno de estos. 139 00:14:27,899 --> 00:14:44,379 Pero bueno, vamos a hacer la prueba de grep-al hola y sal. ¿Vale? Aquí si lo hago, donde he metido aquí, tengo que hacerlo en punto, punto, barra, asterisco. ¿Vale? Es decir, en el padre. 140 00:14:44,379 --> 00:14:59,019 Si hago esto, me va a decir, me está buscando en estos directorios que he puesto aquí hace un momento, en administrador, en aluazo, en profe y en susa, y en estos directorios no hay ese contenido. 141 00:14:59,480 --> 00:15:03,500 Y además que está diciendo, ojo, que es un directorio. Pero yo quiero que haga una búsqueda recursiva. 142 00:15:04,019 --> 00:15:05,840 Pues la recursiva tiene que empezar por R. 143 00:15:06,000 --> 00:15:07,620 En este caso, R minúscula. 144 00:15:08,779 --> 00:15:09,019 ¿Veis? 145 00:15:09,320 --> 00:15:15,519 Entonces, me está buscando, me dice permisos de negado, me da estos errores, 146 00:15:15,519 --> 00:15:18,100 pero me lo está buscando en los mismos que ha encontrado antes. 147 00:15:18,320 --> 00:15:21,120 En hola, raíz, saludos, saludo y habita. 148 00:15:21,720 --> 00:15:21,940 ¿Vale? 149 00:15:22,240 --> 00:15:24,720 O sea, este comando es bastante potente. 150 00:15:25,059 --> 00:15:31,519 Pero es muy curioso porque es una búsqueda de una cadena dentro de ficheros, 151 00:15:31,519 --> 00:15:36,740 pero te muestra, te lista el fichero, ¿vale? 152 00:15:36,879 --> 00:15:40,600 Entonces, muchas veces, cuando veamos el comando find, 153 00:15:40,980 --> 00:15:46,399 veréis que creéis que podéis encontrar esto utilizando el find, 154 00:15:46,600 --> 00:15:49,139 y la forma de utilizarlo es con el break, ¿vale? 155 00:15:49,179 --> 00:15:50,600 Os lo digo para que tengáis cuidado. 156 00:15:51,679 --> 00:15:55,360 Entonces, ya hemos visto todas estas, todas estas van juntas, 157 00:15:55,419 --> 00:15:57,779 y yo no quiero que me distinga mayúsculas de minúsculas, 158 00:15:57,860 --> 00:15:59,639 que no cumpla la condición, todo esto igual. 159 00:15:59,639 --> 00:16:12,019 El menos c no tiene sentido, pero las otras todas irían tanto en listar los ficheros que contienen una cadena como en buscar cadenas y sacar el número o sacar la cadena en cuestión. 160 00:16:12,519 --> 00:16:23,879 Expresiones regulares. Igual que habíamos visto los metacaracteres para nombres de ficheros, el asterisco, la interrogación, los corchetes, pues existe lo mismo en el grep para expresiones regulares. 161 00:16:23,879 --> 00:16:37,960 Vamos a empezar por las conocidas o por las sencillas. El acento circunflejo me representa el comienzo de línea. Es decir, si yo hago un grep, entre comillas, que las expresiones regulares siempre están aplicadas a la cadena de carácter. 162 00:16:37,960 --> 00:16:57,360 Le pongo un acento circunflejo y luego lo que yo quiero, me están diciendo que la cadena, que la línea, tiene que empezar por Marta. Entonces, aquí me va a dar las líneas que empiecen por Marta. Las líneas del fichero ventas TXT que empiecen por Marta. 163 00:16:57,360 --> 00:17:12,579 Si yo pongo ventas asterisco también, vuelvo a decir, siempre lo mismo, ¿vale? El dólar, que acaben, que acaben en viernes, ¿vale? Estas también son fáciles, que empiece, que acabe, pero tengo que meterlo dentro de la cadena. Por aquí vamos bien. 164 00:17:12,579 --> 00:17:29,480 Muy bien. Otra que conocemos también por los metacaracteres. Los corchetes, ¿verdad? Los corchetes me indican un carácter que esté incluido. Solo un carácter que esté incluido. Entonces, es exactamente igual. 165 00:17:29,480 --> 00:17:57,839 Me está diciendo por aquí, ha cogido esta barra como una barra, como las fechas son día barra mes barra año. Entonces, como estamos jugando con los años, sería la barra del año. ¿Vale? Entonces, el 9, está buscando la cadena barra 9 y el segundo carácter tiene que ser o 4 o 5 o 6 del fichero ventas. Filtra las filas de los años 94, 95 y 96. Por aquí, perfecto. 166 00:17:57,839 --> 00:18:15,859 Ahora, empezamos con las complicaciones. Si yo quiero justo las cadenas que no cumplan estas condiciones, en metacaracteres teníamos que meter aquí, dentro del corchete, una admiración. Pero no. En expresiones regulares tenemos que volver a meter un acento circunflejo. 167 00:18:15,859 --> 00:18:40,220 ¿Vale? Entonces, con acento circunflejo vemos exclusión de los caracteres incluidos entre corchetes. Es decir, búscame los años, porque es el barra 9, que no sean ni 94, ni 95, ni 96. Es decir, voy a buscar el 90, 91, 92, 93, 96, 97, 9A, 9B, 9B, ¿sabes? Porque es lo que me está excluyendo. 168 00:18:40,220 --> 00:18:53,460 Ahora, nosotros decíamos, cuando trabajábamos con metacaracteres, decíamos un carácter y solo un carácter, el que sea, ¿verdad? Os suena que trabajábamos con eso. 169 00:18:53,460 --> 00:19:12,539 Y trabajamos con la interrogación. Es decir, si yo buscaba un fichero que fuera o ventas.bac o ventas.bac con K, o ventas.bac, o sea, que lo último que cambiara es la C, podría poner ventas.ba interrogación. 170 00:19:12,539 --> 00:19:28,740 Y me sustituía un solo carácter, el que fuera. ABCD, guión, una letra, un número, lo que fuera. ¿Vale? Bien, pues esa interrogación equivale al punto. ¿Vale? 171 00:19:28,740 --> 00:19:44,539 ¿Vale? Perfecto. Y ahora vamos con lo realmente complicado. El asterisco. Nosotros, en los metacarácteres, el asterisco le correspondía a una cadena la que fuera, ¿verdad? 172 00:19:44,539 --> 00:20:12,619 Bien, pues el asterisco en expresiones regulares se refiere a la expresión del carácter previo. Toma yo. ¿Vale? Eso lo que significa es que si yo pongo Pedro lo que sea pimienta, me va a buscar Pedro o, o sea, me va a buscar una cadena que sea Pedro pimienta, Pedro o pimienta, Pedro o pimienta, Pedro o, puedo repetirlo a todas las veces que quiera. 173 00:20:12,619 --> 00:20:27,519 Porque el asterisco es la repetición del carácter previo. ¿Qué trampas hacemos? Si nuestro carácter previo es justamente el punto que corresponde a un carácter, el que sea, al final estoy haciendo el asterisco que conocemos de metacarácter. 174 00:20:27,519 --> 00:20:50,380 ¿Vale? Y entonces, en este ejemplo que veis sería, Pedro, lo que sea pimienta. Os voy a hacer un cuadradito en el blog de notas. Si busco pimienta en ventas asterisco, esto se refiere a expresiones a metacaracteres y aquí meto expresiones regulares. 175 00:20:50,380 --> 00:21:10,460 Si yo quiero que me busque Pedro lo que sea pimienta, aquí lo que me obtendría serían los posibles ejemplos de Pedro pimienta. 176 00:21:10,460 --> 00:21:22,779 Me encontraría, si existe, Pedro o pimienta. Me encontraría, si existe, Pedro o pimienta. Y así sucesivamente. 177 00:21:22,779 --> 00:21:49,700 Si yo lo que quiero es que me busque Pedro lo que sea pimienta, tengo que hacer grep. Pedro, el punto es lo que sea, pero un solo carácter. Pero es que si yo hago Pedro punto pimienta, no me vale, porque en mi fichero de ventas, justamente delante del pimienta hay un punto y coma. 178 00:21:49,700 --> 00:21:54,259 vale y seguramente sea pedro martínez pedro fernández o lo que sea con lo que esto no me 179 00:21:54,259 --> 00:22:03,799 vale con lo que yo hago pero punto asterisco es decir esto me dice repite el carácter previo y 180 00:22:03,799 --> 00:22:11,420 el carácter serio es el que sea con lo que aquí pondría que aquí ventas lo que sea verdad entonces 181 00:22:11,420 --> 00:22:37,190 El asterisco, que es para metacaracteres, en expresiones regulares, equivale a punto asterisco, ¿vale? Tiene mala pata, pero es así, ¿vale? Muy bien. 182 00:22:37,190 --> 00:23:00,049 Lo que también teníamos, si por ejemplo en expresiones regulares tenemos, voy a coger en vez de, voy a seguir con el grep, por ejemplo, y hágame todo esto, pero quiero utilizar el ventas, por ejemplo, si tuviera varios ficheros de ventas, quiero que sean el 91 y el 92. 183 00:23:00,049 --> 00:23:20,309 ¿Verdad? Imaginaos que quisiera eso. Ventas 91 y 92. ¿De acuerdo? Esto en expresiones regulares es así. ¿Vale? En el caso de, por ejemplo, las fechas, que es con lo que estábamos trabajando antes y, por ejemplo, queremos los días. 184 00:23:20,309 --> 00:23:34,930 Por ejemplo, que fuera el día 1 y el 2 de cada mes, ¿vale? Entonces, para sacar el día 1 y 2 de cada mes, haríamos así. Antes de empezar el campo tenemos un punto y coma y después tenemos la barra para pasar al mes, ¿vale? 185 00:23:34,930 --> 00:23:57,170 Si yo quiero el 1 y 2 de cada mes, pues lo que hago es que el segundo carácter sería así. Es decir, cuando he hecho antes 0, 1, es que me gusta el día 1. Si es 0, 1, 2, me gustaría el día 2. Si quiero el 1, 3, me gustaría el 1, 3. Y eso lo puedo poner así y así. Exactamente igual que pasa con las expresiones, con los metacaracteres, ¿vale? 186 00:23:57,170 --> 00:24:23,670 Pero, si yo quiero justamente, si yo quisiera que me sacara justamente los que no son, que justamente me buscara en los ficheros que no son ni el 2091 ni el 2092, le ponía un no con la admiración, ¿verdad? 187 00:24:23,670 --> 00:24:43,950 Pues bien, aquí no me va del 2, aquí tengo que poner un acento circunflejo. Y en este caso, me buscaría, me sacaría todos los días que no fueran ni el 1, ni el 2, ni el 3. De todos los ficheros que no fueran ni el ventas 91, o sea, todos los ficheros de ventas 9, que no sean ni el 91 ni el 92. 188 00:24:44,750 --> 00:24:44,950 ¿Vale? 189 00:24:45,450 --> 00:24:50,069 Eso es un poco lo que es un poquito más complicado, porque el principio-final de línea también va bien. 190 00:24:50,569 --> 00:24:56,650 Fijaros abajo que os he puesto la barra, el backslash. 191 00:24:56,789 --> 00:25:00,109 Es decir, en vez de la barra que está encima del 7, la que está a la izquierda del 1. 192 00:25:00,769 --> 00:25:05,029 Muchas veces nos interesa que el siguiente carácter no lo interprete, ¿vale? 193 00:25:05,029 --> 00:25:08,750 Que lo consiga un carácter, porque a veces los carácteres para nosotros son especiales. 194 00:25:09,109 --> 00:25:10,829 Por ejemplo, aquí estáis viendo el asterisco. 195 00:25:11,289 --> 00:25:15,130 El asterisco entre las comillas lo que hace es que me repite el carácter previo. 196 00:25:15,650 --> 00:25:21,609 Entonces, si yo pongo cd espacio en blanco asterisco, lo que me va a buscar es cd espacio en blanco. 197 00:25:21,730 --> 00:25:23,349 cd espacio en blanco, espacio en blanco. 198 00:25:23,609 --> 00:25:25,549 cd espacio en blanco, espacio en blanco, espacio en blanco. 199 00:25:25,730 --> 00:25:25,930 ¿Vale? 200 00:25:26,390 --> 00:25:29,890 Pero yo quiero que me busque cd espacio en blanco asterisco. 201 00:25:30,130 --> 00:25:30,869 ¿Qué hago? 202 00:25:31,089 --> 00:25:32,049 Le pongo el backslash. 203 00:25:32,049 --> 00:25:36,130 Si yo delante tengo el backslash, el backslash me está diciendo, no le hagas caso. 204 00:25:36,130 --> 00:25:41,230 Si es una expresión regula que tienes que interpretar, ni caso, no la interpretes.