1 00:00:00,300 --> 00:00:09,000 continuamos con el redireccionamiento recordamos que estoy en esta carpetita que habíamos creado 2 00:00:09,000 --> 00:00:16,739 sábado 28 y que teníamos ahí f1 f fichero 1 fichero 2 fichero 3 voy a borrar el fichero 1 3 00:00:16,739 --> 00:00:27,039 para partir por los que teníamos y tenemos esos tres ficheros vale fichero 1 fichero 2 y fichero 4 00:00:27,039 --> 00:00:35,899 3 mal vimos en este caso que había reclamamiento de entrada de salida y de errores estuvimos viendo 5 00:00:35,899 --> 00:00:43,340 el de salida y el de errores y estuvimos haciendo ejemplos como este diciendo oye quiero mostrar 6 00:00:44,479 --> 00:00:54,979 fichero 1 y no existe y aquí el fichero 1 sí que me lo iba a mostrar y él no existe era un error 7 00:00:54,979 --> 00:01:01,280 así que aquí teníamos los dos canales y hacíamos lo siguiente oye quiero que la salida vaya en este 8 00:01:01,280 --> 00:01:13,480 caso a salida ok punto txt y quiero que los errores vayan a la salida mal punto txt vale 9 00:01:13,480 --> 00:01:21,280 no sé si recordáis que hicimos eso esto de dejar aquí un espacio lo que queráis vale yo son manías 10 00:01:21,280 --> 00:01:29,379 mías entonces qué es lo que ha pasado que me ha creado uno que se llama salida ok y otro que se 11 00:01:29,379 --> 00:01:38,120 llama salida mal si esto lo que vimos antes pues aquí comentaros que tener cuidado con el orden 12 00:01:38,120 --> 00:01:47,239 que pongáis me explico voy a partir de este primer ejemplo que ya lo tenemos hecho pero voy a decirle 13 00:01:47,239 --> 00:01:57,290 que la salida vaya la salida correcta vaya este de aquí y le voy a decir que los errores vayan 14 00:01:57,290 --> 00:02:03,629 al mismo sitio que la salida yo no sé si recordáis que hacía esto si yo le hago un 15 00:02:03,629 --> 00:02:13,189 cut de salida ok pues me ponía tanto los errores vale como la salida correcta dentro del fichero 16 00:02:13,189 --> 00:02:19,969 esto es lo que vimos antes si yo recuerdo pone primero todos los errores y luego en este caso 17 00:02:19,969 --> 00:02:25,430 la salida correcta pero qué pasa si yo hago lo contrario digo mira vale pues voy a hacer lo 18 00:02:25,430 --> 00:02:38,879 mismo pero voy a decirle primero este de aquí y luego la salida ok sí y qué ha pasado aquí 19 00:02:38,879 --> 00:02:48,120 fijaros que me está mostrando la salida de errores porque porque influye el orden en el 20 00:02:48,120 --> 00:02:54,900 que lo pongáis cuidado con eso por favor entonces qué es lo que le estamos diciendo aquí aquí le 21 00:02:54,900 --> 00:03:02,300 estamos diciendo que la salida de errores se me vaya al mismo sitio que la salida estándar y la 22 00:03:02,300 --> 00:03:08,319 salida estándar cuál es por la pantalla así que poner esto y no poner nada lo mismo le estoy 23 00:03:08,319 --> 00:03:15,319 diciendo repito le estoy diciendo oye quiero que los errores los envíes al mismo sitio que 24 00:03:15,319 --> 00:03:20,080 la salida estándar y cuál es la salida estándar ahora pues la salida estándar que nosotros tenemos 25 00:03:20,080 --> 00:03:28,439 ahora en la pantalla vale en este caso como lo queréis llamar me da igual que sea pantalla 26 00:03:28,439 --> 00:03:39,340 terminal me da igual sí por eso que es lo que me muestra aquí aquí lo que me está mostrando es el 27 00:03:39,340 --> 00:03:49,879 error pues en pantalla y luego que le digo pues luego le estoy diciendo que la salida correcta 28 00:03:49,879 --> 00:03:59,560 se me guarda en este fichero de forma que si yo le digo que me diga la salida ok pues solamente 29 00:03:59,560 --> 00:04:06,780 me va a mostrar la salida correcta si entonces repito por favor cuidado lo he cerrado 30 00:04:06,780 --> 00:04:17,430 cuidado con poner 31 00:04:17,430 --> 00:04:19,509 como ponéis el orden 32 00:04:19,509 --> 00:04:20,050 por favor 33 00:04:20,050 --> 00:04:25,149 estábamos en IES Cañaveral 34 00:04:25,149 --> 00:04:26,670 y en el sábado 28 35 00:04:26,670 --> 00:04:27,670 estábamos aquí 36 00:04:27,670 --> 00:04:31,550 y estamos viendo que lo que nos dice 37 00:04:31,550 --> 00:04:32,529 la salida ok 38 00:04:32,529 --> 00:04:34,230 ¿de acuerdo? 39 00:04:35,509 --> 00:04:35,870 vale 40 00:04:35,870 --> 00:04:38,829 vamos a ver más cosas 41 00:04:38,829 --> 00:04:45,290 ya hemos visto que podemos mandar por un lado 42 00:04:45,290 --> 00:04:51,589 la salida y por otro los errores o que podemos enviar las dos cosas al mismo sitio sí vale 43 00:04:51,589 --> 00:05:02,889 cuando yo especificó cosas como ésta en el que decíamos que la salida va a un sitio está de aquí 44 00:05:04,170 --> 00:05:09,470 cuando yo le digo que la salida va a un sitio y el error va a otro como aquí estoy especificando 45 00:05:09,470 --> 00:05:13,629 dónde va cada uno me da igual poner uno delante y otro después es decir aquí el orden sí que me da 46 00:05:13,629 --> 00:05:19,649 pero cuidado cuando yo pongo que los dos van a un mismo sitio como hemos visto antes pero en 47 00:05:19,649 --> 00:05:28,389 este caso cuando yo estoy indicando la salida normal la salida correcta y la salida de errores 48 00:05:28,389 --> 00:05:36,230 me da igual poner este aquí que esté aquí de acuerdo porque estoy especificando los dos por 49 00:05:36,230 --> 00:05:44,970 separado de acuerdo vale vamos a seguir viendo cuáles las opciones que nos quedan hemos visto 50 00:05:44,970 --> 00:05:49,910 la salida y la salida de errores y qué pasa con la entrada pues para que entendáis cómo funciona 51 00:05:49,910 --> 00:05:58,610 la entrada voy a hacer un kit kat aquí y vamos a ver un comando no lo voy a explicar completo pero 52 00:05:58,610 --> 00:06:05,529 voy a ver un comando que se llama tr el comando tr se utiliza para sustituir un conjunto de 53 00:06:05,529 --> 00:06:10,970 caracteres por otros vale por ejemplo el ejemplo más claro que tenéis imaginaros que yo pongo eco 54 00:06:11,910 --> 00:06:27,649 o la caracola sí pues si yo pongo en este caso de coro caracolas si yo pongo el comando tr y 55 00:06:27,649 --> 00:06:38,430 yo al comando tr le digo yo quiero cambiar la a por un 5 si eso lo que le estoy diciendo veis 56 00:06:38,430 --> 00:06:44,189 que hay el tr se me queda ahí el cursor diciendo vale pues escríbeme lo que tú quieras dios vale 57 00:06:44,189 --> 00:06:56,990 pues hola fernando pues quiero que veáis qué es lo que ha hecho me ha cogido la y me la ha 58 00:06:56,990 --> 00:07:02,889 sustituido por en 5 me ha cogido la y me ha sustituido por en 5 si yo sigo poniendo me 59 00:07:02,889 --> 00:07:08,050 dice venga introduce me otra línea porque él está esperando a que yo le dé como entrada a 60 00:07:08,050 --> 00:07:16,209 través del teclado la información pues yo le digo hola caracola y qué es lo que ha hecho pues 61 00:07:16,209 --> 00:07:24,649 volvemos a ver aquí que lo que ha hecho es cambiar la letra por un 5 la letra por un 5 la letra por 62 00:07:24,649 --> 00:07:33,610 un 5 y la letra por un 5 si entonces este comando me permite sustituir no solamente un carácter sino 63 00:07:33,610 --> 00:07:38,290 un conjunto de caracteres. ¿Cómo le puedo yo especificar un conjunto de caracteres? 64 00:07:38,709 --> 00:07:44,850 Os hago otro ejemplo. Yo le digo, oye, quiero tr y le voy a poner entre corchetes un rango 65 00:07:44,850 --> 00:07:52,170 de caracteres. Le digo, quiero que me cambies de la a y tiene que ser un rango que siempre 66 00:07:52,170 --> 00:07:58,509 va de menor a mayor. No puedo poner z, tiene que ser de a a la z. Pues quiero que, esto 67 00:07:58,509 --> 00:08:03,490 le estoy diciendo, quiero que me cambies todas las letras que vayan desde la a hasta la z 68 00:08:03,490 --> 00:08:25,629 El guión quiere decir hasta y en este caso son minúsculas. Y ahora le voy a decir, quiero que me la cambies de la A a la Z mayúscula. Entonces, ¿qué le estoy diciendo aquí? Le estoy diciendo, esto es lo que quiero que me busques para cambiar y esto es por lo que quiero que me busques. 69 00:08:25,629 --> 00:08:32,629 Entonces, como yo he puesto entre corchetes, para poner entre corchetes le pongo un conjunto de caracteres. 70 00:08:33,129 --> 00:08:40,350 Si pongo el primer carácter, un guión y el último, va a ser todos los caracteres comprendidos entre el primero y el último. 71 00:08:41,269 --> 00:08:53,610 ¿Sí? Entonces, aquí lo que le estoy diciendo es que, oye, desde la A minúscula hasta la Z minúscula, es decir, A, B, C, D, E, E, bla, bla, bla, bla, bla, bla. 72 00:08:53,610 --> 00:08:56,750 pues quiero que me lo sustituyas 73 00:08:56,750 --> 00:08:58,669 por de la A mayúscula 74 00:08:58,669 --> 00:09:00,730 a la Z mayúscula 75 00:09:00,730 --> 00:09:02,429 ¿vale? ¿entendéis que hace esto? 76 00:09:03,149 --> 00:09:03,389 ¿vale? 77 00:09:04,389 --> 00:09:06,070 si yo le doy aquí al intro 78 00:09:06,070 --> 00:09:08,610 uy, perdonadme 79 00:09:08,610 --> 00:09:10,529 si no he salido, espérate, control C 80 00:09:10,529 --> 00:09:12,490 control C porque estaba ejecutando 81 00:09:12,490 --> 00:09:14,429 todavía el test anterior 82 00:09:14,429 --> 00:09:16,529 así que 83 00:09:16,529 --> 00:09:18,429 espérate que lo voy a copiar, que no tengo gana de 84 00:09:18,429 --> 00:09:23,389 copiamos 85 00:09:23,389 --> 00:09:25,070 y pegamos 86 00:09:25,070 --> 00:09:26,470 ¿vale? 87 00:09:26,649 --> 00:09:27,669 se queda ahí esperando 88 00:09:27,669 --> 00:09:29,490 le digo, vale, pues hola 89 00:09:29,490 --> 00:09:33,580 Fernando 90 00:09:33,580 --> 00:09:36,360 pues que es lo que ha hecho, fijaros que es lo que ha hecho 91 00:09:36,360 --> 00:09:37,460 me está cambiando 92 00:09:37,460 --> 00:09:39,559 pues todo la he ido por a ver 93 00:09:39,559 --> 00:09:42,179 me dice, oye 94 00:09:42,179 --> 00:09:44,019 la H por H mayúscula 95 00:09:44,019 --> 00:09:46,519 la O minúscula por la O mayúscula 96 00:09:46,519 --> 00:09:47,259 voy a cambiar el color 97 00:09:47,259 --> 00:09:54,720 la L 98 00:09:54,720 --> 00:09:58,179 joder, estoy cogiendo yo aquí 99 00:09:58,179 --> 00:10:01,549 el blue 100 00:10:01,549 --> 00:10:05,860 cojo la A 101 00:10:05,860 --> 00:10:08,659 cojo la F minúscula por la F minúscula 102 00:10:08,659 --> 00:10:13,019 Cojo la E por la E mayúscula, es decir, me está cambiando todas las minúsculas por mayúsculas. 103 00:10:13,580 --> 00:10:17,240 ¿Que yo quiero seguir escribiendo? Pues me va a convertir. 104 00:10:17,379 --> 00:10:21,500 Pero repito, ¿de dónde me está esperando los datos? De la entrada estándar. 105 00:10:21,600 --> 00:10:26,259 Y la entrada estándar, que es por defecto el numerito 0 y es el teclado. 106 00:10:27,059 --> 00:10:34,159 ¿Sí? Vale. Entonces, una última CTRL-C para salir de aquí y una última observación. 107 00:10:34,159 --> 00:10:38,559 ¿Qué pasa si yo quiero decir las vocales? Yo le pongo A, E, I, O. 108 00:10:38,659 --> 00:10:43,039 y quiero que me lo cambie por 1, 2, 3, 4 y 5 109 00:10:43,039 --> 00:10:46,360 entonces, ¿qué es lo que va a hacer? 110 00:10:47,039 --> 00:10:48,159 me va a cambiar 111 00:10:48,159 --> 00:10:55,639 me va a cambiar la SAS 112 00:10:55,639 --> 00:10:57,580 por 1 113 00:10:57,580 --> 00:10:59,179 la SES 114 00:10:59,179 --> 00:11:00,299 por 2 115 00:11:00,299 --> 00:11:02,720 la I por 3 116 00:11:02,720 --> 00:11:05,179 la O por 4 117 00:11:05,179 --> 00:11:07,159 y la U por 5 118 00:11:07,159 --> 00:11:08,100 eso es lo que me va a hacer 119 00:11:08,100 --> 00:11:11,340 entonces, si yo esto lo ejecuto 120 00:11:11,340 --> 00:11:12,840 yo le pongo aquí 121 00:11:12,840 --> 00:11:21,299 Antonio Cervantes Cuevas. 122 00:11:22,080 --> 00:11:23,200 Pues, ¿qué es lo que me ha hecho? 123 00:11:23,759 --> 00:11:24,720 Me lo estoy inventando, ¿eh? 124 00:11:26,879 --> 00:11:28,059 ¿Qué es lo que me ha hecho aquí? 125 00:11:28,480 --> 00:11:29,039 Pues la A. 126 00:11:29,360 --> 00:11:30,019 Uy, perdón. 127 00:11:31,840 --> 00:11:32,740 La A por un 1. 128 00:11:34,120 --> 00:11:35,259 La O por un 4. 129 00:11:36,240 --> 00:11:37,580 La I por un 3. 130 00:11:38,340 --> 00:11:39,320 La O por un 4. 131 00:11:39,320 --> 00:11:47,220 Vais viendo que me está sustituyendo cada vocal por su correspondiente número en el orden en el que nosotros lo hemos puesto. 132 00:11:47,360 --> 00:11:50,899 La U por un 5, la E por un 2 y la A por un 1. 133 00:11:52,419 --> 00:11:53,480 ¿Entendéis este comando? 134 00:11:55,220 --> 00:11:57,840 Entonces, ¿cómo le podría yo decir? 135 00:11:58,100 --> 00:11:59,720 Imaginaros que vamos a hacer un ficherito. 136 00:11:59,720 --> 00:12:11,649 Le digo, oye, nano y vamos a crear un ficherito que sea nombres alumnos. 137 00:12:11,970 --> 00:12:40,149 Y vamos a creer aquí, yo que sé, lo que me dé la gana. Antonio, Luis, Carol, Eva, Natalia, Carmen, Nuria, Alejandra, ¿vale? 138 00:12:40,149 --> 00:12:41,090 yo que sé, esto es de aquí 139 00:12:41,090 --> 00:12:43,330 otra vez Luis 140 00:12:43,330 --> 00:12:47,620 ¿de acuerdo? 141 00:12:48,820 --> 00:12:50,820 pues imaginaos que tenemos esto, ya sabéis 142 00:12:50,820 --> 00:12:52,139 que para salir, control x 143 00:12:52,139 --> 00:12:54,700 quiere guardar los cambios, s de sí 144 00:12:54,700 --> 00:12:56,820 nombre del ficherito 145 00:12:56,820 --> 00:12:58,320 ese es el que tiene, intro 146 00:12:58,320 --> 00:13:00,940 y ya lo tenemos guardado, de forma que si yo le 147 00:13:00,940 --> 00:13:03,120 digo nombres alumnos 148 00:13:03,120 --> 00:13:04,399 esto es lo que tengo, ¿sí? 149 00:13:04,879 --> 00:13:06,720 ¿qué pasa si yo quiero convertir 150 00:13:06,720 --> 00:13:08,700 este fichero? 151 00:13:08,820 --> 00:13:10,480 es decir, todo lo que hay en este fichero 152 00:13:10,480 --> 00:13:12,779 quiero que me lo sustituya 153 00:13:12,779 --> 00:13:17,379 todos los caracteres en minúscula por mayúsculas. 154 00:13:18,299 --> 00:13:20,480 Yo le podría decir lo que teníamos aquí antes. 155 00:13:21,039 --> 00:13:24,480 El tr, az, az mayúscula. 156 00:13:25,399 --> 00:13:31,120 Pero, ¿y cómo le digo yo que en lugar de que los valores me lo coja del teclado, 157 00:13:31,500 --> 00:13:33,059 quiero que me lo coja de un fichero? 158 00:13:33,259 --> 00:13:36,840 Pues para eso tenemos aquí el que nos queda, el menor. 159 00:13:37,679 --> 00:13:39,399 Yo con el menor le estoy diciendo, 160 00:13:39,399 --> 00:13:51,720 oye, los datos de entrada con los que vas a trabajar no va a ser el teclado, o sea, no esperes los datos del teclado, sino que directamente te los voy a enviar de un ficherito, ¿vale? 161 00:13:51,720 --> 00:14:09,620 Que se llama nombres.txt. Entonces, ¿qué es lo que estoy haciendo aquí? Aquí lo que estoy haciendo es que todo el contenido de este ficherito, que es nombre alumnos, que es este de aquí, ¿sí? 162 00:14:09,620 --> 00:14:20,620 Lo que estoy haciendo es, se los voy a pasar como si yo los hubiese escrito, se los voy a pasar al comando tr. 163 00:14:21,539 --> 00:14:23,519 Entonces, ¿qué es lo que va a hacer el comando tr? 164 00:14:23,940 --> 00:14:36,299 Me va a coger como entrada todo el contenido de este ficherito y lo que va a hacer es, me va a sustituir todo lo que está en minúscula por mayúscula y me lo va a mostrar en pantalla. 165 00:14:36,299 --> 00:14:51,279 ¿Sí? Entonces si yo esto lo ejecuto, pues vamos a ver si efectivamente, fijaros que ya no me pide nada por pantalla, sino que automáticamente en lugar de obtener del teclado me lo ha cogido de ese ficherito. 166 00:14:51,659 --> 00:14:59,899 Me ha convertido todo de minúscula a mayúscula y ha terminado. ¿Me seguís? ¿Sí? Pues ese es el que nos quedaba. 167 00:14:59,899 --> 00:15:18,669 Que sepáis que yo le puedo decir, oye, quiero que eso, en lugar de que me lo muestres por pantalla, quiero que me lo guardes, nombres, mayúsculas, punto txt, pero bien escrito. 168 00:15:18,669 --> 00:15:22,529 mayúsculas 169 00:15:22,529 --> 00:15:24,870 si yo le doy 170 00:15:24,870 --> 00:15:27,169 no me ha mostrado nada, ¿por qué? 171 00:15:27,629 --> 00:15:28,970 porque le he dicho 172 00:15:28,970 --> 00:15:31,230 que me coja 173 00:15:31,230 --> 00:15:35,769 y que en lugar de mostrármelo en la salida 174 00:15:35,769 --> 00:15:37,169 me lo guarde en este fichero 175 00:15:37,169 --> 00:15:39,389 de forma que si yo hago un cat de ese fichero 176 00:15:39,389 --> 00:15:44,730 pues fijaros que contiene 177 00:15:44,730 --> 00:15:47,789 el ficherito en mayúsculas 178 00:15:47,789 --> 00:15:48,870 ¿de acuerdo? 179 00:15:48,870 --> 00:16:09,990 ¿De acuerdo? Entendemos para qué es el redireccionamiento de entrada, pero puedo juntar entrada con salida, como habéis visto. ¿De acuerdo? ¿Sí? Vale. Esto en cuanto a los redireccionamientos. Pues ahora vamos a pasar, en este caso, a las tuberías o a los pipes. ¿Y qué es eso de las tuberías o los pipes? 180 00:16:09,990 --> 00:16:18,529 Voy a mostrar aquí, porque quiero que veáis el dibujito, y quiero que veáis aquí qué es lo que tenemos. 181 00:16:20,690 --> 00:16:23,389 Me dice, primeramente, ¿qué es una tubería? 182 00:16:24,129 --> 00:16:31,529 Me dice, una tubería es una secuencia de uno o más comandos separados por la barra vertical. 183 00:16:32,490 --> 00:16:32,730 ¿Sí? 184 00:16:33,970 --> 00:16:37,330 Lo podéis ver en este caso, como bien dice, una tubería. 185 00:16:38,129 --> 00:16:39,149 ¿Qué quiere decir esto? 186 00:16:39,990 --> 00:16:47,669 escribimos por aquí si yo tengo este comando de aquí este comando me va a 187 00:16:47,669 --> 00:16:53,070 producir una salida si me va a mostrar la información de esta carpetita de 188 00:16:53,070 --> 00:16:58,090 aquí si yo no digo nada donde se me va a mostrar la salida pues en pantalla 189 00:16:58,090 --> 00:17:03,389 verdad sí pues en lugar de decirle que se mal que se me lo muestre porque 190 00:17:03,389 --> 00:17:09,150 nosotros tendríamos aquí el monitor vale y aquí es donde se me mostraría 191 00:17:09,150 --> 00:17:23,930 Pues en lugar de decirle que se me muestre por pantalla, le estoy diciendo, oye, espérate, que en lugar de que esto lo muestres por pantalla, no quiero que lo muestres por pantalla, sino que quiero que se lo envíes al siguiente comando. 192 00:17:23,930 --> 00:17:50,170 Y esto es lo que está haciendo aquí la tubería. Este de aquí está haciendo esta tubería de aquí. Lo quito y lo vuelvo a dibujar. Es decir, este de aquí lo que está haciendo es hacer una tubería para decirle, oye, la salida de este comando se la vas a enviar como entrada a este comando. 193 00:17:50,170 --> 00:18:05,390 Entonces veis que aquí la salida de este proceso, de este comando, se la voy a pasar mediante una tubería y se va a convertir en los datos de entrada para el siguiente comando. 194 00:18:05,390 --> 00:18:22,430 Y el siguiente comando, en este caso es el less. Y el less ya vimos que me muestra el contenido de lo que yo le pase pantalla a pantalla, que es lo que utiliza la ayuda de Linux. 195 00:18:22,430 --> 00:18:42,509 Y fijaros que aquí de nuevo está representado cada uno de los canales. El 0 la entrada, el 1 la salida y el 2 la de los errores. 196 00:18:42,509 --> 00:19:01,269 ¿De acuerdo? Entonces repito, cuando yo utilizo este pipe, esta tubería, estoy haciendo que la salida del comando que está a su mano izquierda se lo pase al comando que está a mano derecha como la entrada a ese comando, como la información a ese comando. 197 00:19:01,269 --> 00:19:03,970 ¿Sí? ¿De acuerdo? 198 00:19:04,789 --> 00:19:08,029 Y aquí me dicen, porque quiero que lo veáis, ¿vale? 199 00:19:08,130 --> 00:19:10,549 Quiero que leáis esto que me pone aquí abajo. 200 00:19:11,589 --> 00:19:18,049 Me dice, oye, si el redireccionamiento de la salida se usa en el medio de una tubería, 201 00:19:18,970 --> 00:19:20,829 la salida irá al fichero. 202 00:19:22,509 --> 00:19:25,009 Me explico. Ahora lo vamos a hacer para que lo veáis. 203 00:19:25,009 --> 00:19:32,599 Me voy a salir de aquí y me voy a ir... 204 00:19:32,599 --> 00:19:43,230 Si yo hago esto, digo, oye, vamos a poner un ls menos l de lo que hay aquí, ¿vale? 205 00:19:44,009 --> 00:19:44,950 Esto bien, ¿verdad? 206 00:19:45,930 --> 00:19:54,369 Pero, ¿y qué pasa si yo esto hago una tubería y le digo, oye, en lugar de que lo muestres por pantalla, se lo quiero pasar a un comando? 207 00:19:54,369 --> 00:20:00,390 Y, por ejemplo, ya que hemos visto muy, muy, muy por encima el comando tr, digo, quiero que se lo pases al comando tr 208 00:20:00,390 --> 00:20:07,390 Y quiero que me cambies las letras minúsculas por las letras mayúsculas. 209 00:20:08,410 --> 00:20:11,630 ¿Qué es lo que hace esto? 210 00:20:12,869 --> 00:20:23,710 Pues fijaros que lo que ha hecho es que me ha cogido la salida de este comando, que es esta de aquí. 211 00:20:25,049 --> 00:20:27,089 Pero ¿y a quién se la ha pasado? 212 00:20:27,710 --> 00:20:31,230 Se la ha pasado al comando TR. 213 00:20:31,230 --> 00:20:35,890 No la ha mostrado en pantalla, sino que se la ha pasado el comando tr. 214 00:20:36,890 --> 00:20:39,710 De forma que este comando tr, ¿qué es lo que hace? 215 00:20:40,190 --> 00:20:45,690 Pues con todo esto que le llega, me coge todas las letras minúsculas y me las convierte en mayúsculas. 216 00:20:46,190 --> 00:20:48,349 Pues esto es lo que me ha mostrado aquí. 217 00:20:49,849 --> 00:20:50,289 ¿De acuerdo? 218 00:20:51,410 --> 00:20:52,769 ¿Entendéis qué quiere decir esto? 219 00:20:54,710 --> 00:20:59,690 ¿Qué pasa si yo ahora, en lugar de hacer esto, voy a hacer esto de aquí? 220 00:20:59,690 --> 00:21:02,049 es decir, esto sabemos que hace 221 00:21:02,049 --> 00:21:03,170 pero en lugar de hacer esto 222 00:21:03,170 --> 00:21:05,849 yo le voy a poner 223 00:21:05,849 --> 00:21:08,029 ls y le pongo 224 00:21:08,029 --> 00:21:09,269 aquí salida ok 225 00:21:09,269 --> 00:21:11,809 y le pongo la tubería 226 00:21:11,809 --> 00:21:13,990 ¿qué estoy haciendo ahí? 227 00:21:17,109 --> 00:21:18,210 ¿veis que el tr no me ha 228 00:21:18,210 --> 00:21:19,230 hecho nada? ¿por qué? 229 00:21:19,910 --> 00:21:20,869 porque cuidado 230 00:21:20,869 --> 00:21:23,670 porque yo aquí le he dicho, oye 231 00:21:23,670 --> 00:21:26,009 cógeme el comando ls y me lo 232 00:21:26,009 --> 00:21:27,369 guardas en este ficherito 233 00:21:27,369 --> 00:21:29,829 ¿sí? y el resultado 234 00:21:29,829 --> 00:21:32,690 Pero es que aquí no hay resultado, ya la he guardado en un fichirito 235 00:21:32,690 --> 00:21:35,089 Es decir, aquí ya no le va a pasar nada 236 00:21:35,089 --> 00:21:36,829 Aquí, no hay nada que pasarle 237 00:21:36,829 --> 00:21:38,650 ¿Me explico? 238 00:21:39,769 --> 00:21:41,069 Entonces, sí que puedo hacer 239 00:21:41,069 --> 00:21:42,170 En lugar de esto 240 00:21:42,170 --> 00:21:45,289 Sí que puedo decirle 241 00:21:45,289 --> 00:21:47,750 Oye, y una vez que me has mostrado esto 242 00:21:47,750 --> 00:21:49,029 Que me lo muestras en pantalla 243 00:21:49,029 --> 00:21:50,569 Pues ahora lo quiero guardar 244 00:21:50,569 --> 00:21:53,150 En salida, yo que sé, ok 245 00:21:53,150 --> 00:21:54,769 Y entonces ahora sí 246 00:21:54,769 --> 00:21:57,609 Si yo le hago un cat de salida ok 247 00:21:57,609 --> 00:21:59,230 Pues tendré la información 248 00:21:59,230 --> 00:22:01,509 en mayúscula 249 00:22:01,509 --> 00:22:02,490 ¿me entendéis? 250 00:22:03,150 --> 00:22:03,390 ¿sí? 251 00:22:05,230 --> 00:22:07,410 vale, ¿qué es lo que podemos hacer? 252 00:22:07,609 --> 00:22:09,410 yo no sé si os acordáis que vimos 253 00:22:09,410 --> 00:22:13,069 el comando tri 254 00:22:13,069 --> 00:22:14,109 creo recordar 255 00:22:14,109 --> 00:22:17,150 ¿qué pasa si yo le digo tri? 256 00:22:18,170 --> 00:22:19,609 y le digo de 257 00:22:19,609 --> 00:22:22,190 y es cañaveral 258 00:22:22,190 --> 00:22:25,470 para decirle que solamente me muestre los directorios 259 00:22:25,470 --> 00:22:27,589 ¿vale? 260 00:22:27,589 --> 00:22:39,269 Veis que me ha mostrado toda la estructura de directorios, ¿vale? Y estas son, pues fijaros que sigo subiendo, sigo subiendo porque hay muchas carpetas, ¿sí? 261 00:22:40,329 --> 00:23:00,380 ¿Vale? Pues yo esto se lo puedo pasar a una tubería. Y le digo, mira, quiero que esto, por ejemplo, que se lo pases al comando para que me lo pongas todo en mayúscula, ¿vale? 262 00:23:00,380 --> 00:23:02,819 Y me lo muestra todo en mayúscula, ¿sí? 263 00:23:03,400 --> 00:23:07,299 Pero es que además, esto se lo puedo seguir pasando a otro. 264 00:23:08,420 --> 00:23:28,359 Digo, mira, ahora quiero que, pues yo qué sé, vuelvo a ejecutar un tr y le digo, oye, mira, quiero que me cambies, yo qué sé, los números del 0 al 9 y quiero que me lo cambies, pues yo qué sé. 265 00:23:28,359 --> 00:23:32,589 por 266 00:23:32,589 --> 00:23:35,369 todo me lo va a cambiar por un 1 267 00:23:35,369 --> 00:23:40,200 yo que sé, este de aquí 268 00:23:40,200 --> 00:23:42,319 ¿vale? entonces veis que 269 00:23:42,319 --> 00:23:44,000 aquí me ha cambiado 1, 1 270 00:23:44,000 --> 00:23:46,140 1, 1, 1, es decir, me ha cambiado 271 00:23:46,140 --> 00:23:46,779 todos los números 272 00:23:46,779 --> 00:23:50,119 todos los 0 a 1 por 1, 1, 1 273 00:23:50,119 --> 00:23:52,240 entonces quiero que veáis que yo puedo ir 274 00:23:52,240 --> 00:23:54,299 poniendo y además yo le puedo poner 275 00:23:54,299 --> 00:23:54,960 aquí, oye 276 00:23:54,960 --> 00:23:58,339 muéstrame la información poquito a poco 277 00:23:58,339 --> 00:24:00,400 de forma que me va 278 00:24:00,400 --> 00:24:01,740 mostrando la información 279 00:24:01,740 --> 00:24:03,099 poquito a poco 280 00:24:03,099 --> 00:24:05,859 ¿vale? estoy pulsando la barra espaciadora 281 00:24:05,859 --> 00:24:07,019 para bajar de línea a línea 282 00:24:07,019 --> 00:24:09,720 entonces, ¿qué quiero que veáis? 283 00:24:10,400 --> 00:24:12,359 quiero que veáis que yo puedo juntar aquí 284 00:24:12,359 --> 00:24:14,619 ¿vale? todos los pipes 285 00:24:14,619 --> 00:24:16,099 que a mí me dé la gana 286 00:24:16,099 --> 00:24:18,559 es decir, ejecútame un comando 287 00:24:18,559 --> 00:24:20,240 ejecutado, ¿vale? 288 00:24:20,839 --> 00:24:22,039 otro comando 289 00:24:22,039 --> 00:24:24,660 tercer comando 290 00:24:24,660 --> 00:24:27,380 y cuarto comando 291 00:24:27,380 --> 00:24:29,960 ¿qué es lo que hace 292 00:24:29,960 --> 00:24:31,019 este de aquí? 293 00:24:31,740 --> 00:24:45,279 Lo ponemos. La salida de este comando se la voy a pasar a este otro como entrada. 294 00:24:46,099 --> 00:24:51,079 Este comando, si yo no pusiese más, me mostraría la información por defecto en la pantalla. 295 00:24:51,579 --> 00:25:00,319 Pero como yo tengo otro pipe, le digo, oye, quiero que la salida de este comando se la envíes a este otro como entrada. 296 00:25:00,319 --> 00:25:06,160 como tengo otro más, le digo, oye, quiero que la salida de este comando 297 00:25:06,160 --> 00:25:09,519 en lugar de que se la envíes a pantalla, se la envíes 298 00:25:09,519 --> 00:25:14,319 a este comando de aquí, ¿sí? y como este 299 00:25:14,319 --> 00:25:18,140 ya no tiene más a que enviar, ¿dónde lo envía por 300 00:25:18,140 --> 00:25:22,160 defecto? al std out, es decir 301 00:25:22,160 --> 00:25:25,220 a la pantalla, es decir, al terminal 302 00:25:25,220 --> 00:25:30,180 ¿de acuerdo? entonces yo puedo juntar tantos pipelines como a 303 00:25:30,180 --> 00:25:37,359 me dé la gana entendemos esto esto me permite dentro de linux y dentro de 304 00:25:37,359 --> 00:25:42,420 windows también aunque en windows menos a no ser que utilice powers el que me 305 00:25:42,420 --> 00:25:47,960 ofrece un juego impresionante de acuerdo yo puedo juntar aquí y extraer toda la 306 00:25:47,960 --> 00:25:53,019 información que yo quiera entendemos qué quiere decir esto 307 00:25:53,019 --> 00:25:59,220 de acuerdo hago otro ejemplo yo le puedo decir 308 00:25:59,220 --> 00:26:04,740 Por ejemplo, quiero que me muestres los nombres en mayúsculas. 309 00:26:06,359 --> 00:26:06,880 ¿Sí? 310 00:26:08,480 --> 00:26:13,240 Y yo no sé si os acordáis de que esto... 311 00:26:13,240 --> 00:26:15,440 Tengo este comando. No sé si os acordáis. 312 00:26:17,220 --> 00:26:20,319 Digo, pues mira, ordenamelo aleatoriamente. 313 00:26:20,819 --> 00:26:21,740 ¿Me seguís? 314 00:26:22,700 --> 00:26:27,720 Y este comando, ahora quiero, por ejemplo, pasárselo al gead. 315 00:26:27,720 --> 00:26:30,220 Y quiero que me muestre los cinco primeros. 316 00:26:31,880 --> 00:26:32,440 ¿Sí? 317 00:26:32,660 --> 00:26:34,759 Y me muestra los cinco primeros. 318 00:26:35,140 --> 00:26:40,880 Y ahora, de estos cinco primeros, quiero que me muestres los dos últimos. 319 00:26:41,799 --> 00:26:43,420 Y me muestra los dos últimos. 320 00:26:44,559 --> 00:26:45,380 ¿Me vais siguiendo? 321 00:26:46,279 --> 00:26:46,539 ¿Sí? 322 00:26:47,500 --> 00:26:52,839 Y esto de aquí, quiero que me lo guardes en un ficherito que se llame f2.txt. 323 00:26:54,700 --> 00:26:56,920 Y me lo guarda en f2.txt. 324 00:26:57,720 --> 00:27:01,819 Entonces, quiero que veáis todo lo que puedo juntar aquí. 325 00:27:02,980 --> 00:27:05,220 Yo puedo jugar aquí con todo lo que yo quiera. 326 00:27:07,960 --> 00:27:14,220 Yo le puedo decir, oye, cógeme, uy, perdonadme, cógeme este ficherito. 327 00:27:14,220 --> 00:27:21,420 Es un comando, segundo comando, tercer comando, cuarto comando y el redireccionamiento. 328 00:27:22,880 --> 00:27:25,099 Entonces, repito que es lo que hace esto. 329 00:27:25,099 --> 00:27:30,000 me está cogiendo el resultado del primer comando 330 00:27:30,000 --> 00:27:33,740 perdonad, el resultado del primer comando 331 00:27:33,740 --> 00:27:36,359 y se lo está pasando al segundo como entrada 332 00:27:36,359 --> 00:27:37,680 ¿qué es lo que va a hacer el suv? 333 00:27:38,200 --> 00:27:40,700 coge lo que le pasa a este comando de aquí 334 00:27:40,700 --> 00:27:43,480 y lo muestra de forma aleatoria 335 00:27:43,480 --> 00:27:46,599 pero resulta que en lugar de mostrarlo por pantalla 336 00:27:46,599 --> 00:27:49,720 se lo tiene que pasar al siguiente comando 337 00:27:49,720 --> 00:27:51,900 el siguiente comando recibe 338 00:27:51,900 --> 00:27:54,220 lo que ha hecho el suv 339 00:27:54,220 --> 00:28:02,750 que es coger y desordenar de forma aleatoria las líneas de ese fichero 340 00:28:02,750 --> 00:28:05,809 y me va a coger y me va a mostrar las cinco primeras. 341 00:28:06,210 --> 00:28:13,089 Pero en lugar de mostrarlo por pantalla, esas cinco primeras líneas se las va a pasar al tail. 342 00:28:14,210 --> 00:28:20,049 El tail recibe esas cinco primeras líneas y de esas cinco primeras líneas, ¿cuál me va a coger? 343 00:28:20,049 --> 00:28:21,170 Pues las dos últimas. 344 00:28:21,170 --> 00:28:30,470 Y esas dos últimas, en lugar de mostrarlo por pantalla, ¿qué es lo que va a hacer? Pues lo va a abordar en este ficherito. ¿Me entendéis? ¿De acuerdo? 345 00:28:30,470 --> 00:28:43,470 Por ejemplo, vamos a suponer que yo tengo el ficherito nombres mayúsculas. 346 00:28:50,690 --> 00:29:01,470 ¿Cómo haríais para decir que esta es la línea 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 y 11? 347 00:29:01,470 --> 00:29:21,180 Pues yo solamente quiero que me muestre de la línea 5, 6 y 7. Es decir, 1, 2, 3, 4, 5, 6 y 7. Es decir, ¿cómo hacéis para decirle que os muestre solo estas tres líneas? ¿Cómo sería? 348 00:29:21,180 --> 00:29:41,660 Es decir, esto es pregunta, imaginaros que yo lo pregunto en el examen. Oye, quiero obtener de este ficherito de la línea 5 a la línea 7 con un solo comando, ¿vale? Una sola línea de instrucción. ¿Cómo lo haríamos? Pues imaginaros que yo puedo hacer lo siguiente. 349 00:29:41,660 --> 00:29:55,359 Tenéis varias opciones, ¿eh? Pero primeramente voy a coger y le voy a decir que me muestre del fichero, por ejemplo, estas líneas. 350 00:29:55,859 --> 00:30:04,259 ¿Estas líneas cuáles son? 1, 2, 3, 4, 5, 6, 7. Las primeras 7 líneas. ¿Sí? Pues, ¿cómo se lo digo? 351 00:30:04,259 --> 00:30:26,730 Digo, oye, muéstrame las siete primeras líneas del ficherito, nombre mayúsculas, ¿sí? Ya tengo aquí las primeras siete. Ahora, ¿cuáles quiero? Yo quiero estas tres, ¿verdad? 352 00:30:26,730 --> 00:30:49,970 ¿Y estas tres cuáles son? Las tres últimas, ¿verdad? Pues yo este resultado se lo puedo pasar a un comando que me muestra las tres últimas. ¿Qué comando me muestra las últimas líneas de lo que yo le diga? Pues yo le digo el tail menos tres. 353 00:30:49,970 --> 00:30:54,490 y efectivamente tengo aquí el resultado 354 00:30:54,490 --> 00:30:59,150 que yo os pido, oye, cógeme las líneas del 5 al 7 355 00:30:59,150 --> 00:31:02,650 y guárdamelas en un fichero, ¿vale? pues 3 líneas 356 00:31:02,650 --> 00:31:05,130 punto txt 357 00:31:05,130 --> 00:31:09,170 ¿me seguís como va funcionando esto? 358 00:31:09,170 --> 00:31:12,970 ¿sí? ¿lo veis? 359 00:31:13,730 --> 00:31:16,289 vale, una aclaración 360 00:31:16,289 --> 00:31:25,269 Cuando nosotros vimos el comando tail o cuando nosotros vimos el comando head, ¿lo veis? 361 00:31:26,190 --> 00:31:32,230 Pues nosotros en el comando tail o en el comando head siempre le poníamos el nombre del ficherito que quiero que me muestre. 362 00:31:33,089 --> 00:31:34,890 Pues quiero que veáis aquí. 363 00:31:39,380 --> 00:31:47,359 Yo le he dicho, oye, quiero que me muestres las siete primeras líneas y obviamente le he dicho el nombre del fichero 364 00:31:47,359 --> 00:31:49,640 Porque le tengo que decir un nombre de fichero 365 00:31:49,640 --> 00:31:54,240 Pero resulta que aquí no le he dicho un nombre de fichero 366 00:31:54,240 --> 00:31:54,900 ¿Veis dónde estoy? 367 00:31:56,039 --> 00:31:57,900 ¿Por qué no le he dicho ahí un nombre de fichero? 368 00:31:58,539 --> 00:32:03,140 Porque automáticamente la salida de este comando 369 00:32:03,140 --> 00:32:06,119 Va a ser la entrada de este 370 00:32:06,119 --> 00:32:09,960 Así que él automáticamente lo va a coger de la entrada estándar 371 00:32:09,960 --> 00:32:10,359 ¿Sí? 372 00:32:12,160 --> 00:32:13,980 Por eso aquí no le pongo el nombre de fichero 373 00:32:13,980 --> 00:32:15,799 Porque ya se lo está pasando el anterior 374 00:32:15,799 --> 00:32:31,309 No obstante, quiero que veáis que este comando y este comando son exactamente igual. 375 00:32:31,630 --> 00:32:33,289 Y quiero que veáis que es lo que he puesto. 376 00:32:36,059 --> 00:32:49,579 Cuando yo tengo aquí este comando, le digo, oye, muéstrame las primeras siete líneas. 377 00:32:55,500 --> 00:32:57,880 Y se la vas a pasar al comando tail. 378 00:32:57,880 --> 00:33:18,000 Pues quiero que veáis que aquí en el comando tail he puesto esto de aquí. ¿Qué representa este guión? Este guión representa que va a coger la entrada de lo que le viene del comando anterior. 379 00:33:18,000 --> 00:33:29,630 Es decir, que la salida de este es como si me crease un fichero temporal, ¿vale? 380 00:33:30,210 --> 00:33:40,170 Y la salida de este comando, para indicar que este ficherito, o sea, que el ficherito lo va a coger de la salida anterior, le tengo que poner un guión. 381 00:33:40,890 --> 00:33:44,410 Pero fijaros que si no pongo nada, él lo entiende perfectamente. 382 00:33:45,309 --> 00:33:46,690 ¿Por qué os explico esto? 383 00:33:47,150 --> 00:33:50,589 Porque hay comandos que tú le vas a tener que indicar dos ficheritos. 384 00:33:51,289 --> 00:34:03,950 Pues para decirle que uno de los ficheritos es el resultado del comando anterior, pues que sepáis que para decirle cada vez que pongáis un guión, le estáis diciendo que esa parte la coge de aquí, ¿vale? 385 00:34:03,950 --> 00:34:29,889 Me explico. Imaginaros que esta salida me la guarda en un ficherito temporal que se llame temporal.txt, ¿sí? Pues este ficherito es como si lo pusiese aquí. Es como si yo estuviese escribiendo tail-3 temporal.txt, ¿de acuerdo? 386 00:34:29,889 --> 00:34:47,570 Entonces, repito, esto y esto de aquí arriba es exactamente igual, ¿vale? Entonces, si lo veis más claro que para decirle un guión, el guión es para decirle, oye, coge el ficherito resultado de la salida anterior, salida anterior, guión, ¿de acuerdo? 387 00:34:47,570 --> 00:34:53,510 Y una vez que me ha mostrado los tres primeros, lo guardamos en el tres líneas punto txt. 388 00:34:54,110 --> 00:34:56,329 ¿Sí? ¿Entendemos esto? 389 00:34:57,809 --> 00:34:58,130 Vale. 390 00:34:59,389 --> 00:35:01,329 Pues vamos a seguir un poquito para adelante. 391 00:35:04,840 --> 00:35:10,940 Y vamos a ver que, cuidado con el orden, ¿vale? 392 00:35:11,039 --> 00:35:19,539 En las transparencias pongo un ejemplo muy claro para que veáis que no es lo mismo dependiendo de cómo ponga yo los comandos en las tuberías, 393 00:35:19,539 --> 00:35:27,900 tú verías, porque os comento, tenéis un comando, vamos a hacer el ejemplo con el nombres mayúsculas, ¿vale? 394 00:35:28,599 --> 00:35:35,239 Si yo hago cat nombres mayúsculas, tengo este de aquí, ¿sí? 395 00:35:36,059 --> 00:35:44,420 Yo no sé si recordáis que el cat tenía una opción que se llamaba guión n, que lo que me hace es numerar las líneas, ¿lo veis? 396 00:35:44,420 --> 00:35:49,800 pues imaginaros que yo voy a hacer esto 397 00:35:49,800 --> 00:35:52,460 por ejemplo 398 00:35:52,460 --> 00:36:05,480 si yo le digo que me enumere las líneas 399 00:36:05,480 --> 00:36:07,420 y que me muestre 400 00:36:07,420 --> 00:36:11,159 las 5 últimas 401 00:36:11,159 --> 00:36:17,079 me pone 8, 9, 10, 11, 12 402 00:36:17,079 --> 00:36:17,559 ¿lo veis? 403 00:36:18,619 --> 00:36:20,579 pero no es lo mismo que si yo le digo 404 00:36:20,579 --> 00:36:31,880 oye, muéstrame las cinco últimas líneas de nombres mayúsculas y le digo un cat menos n. 405 00:36:32,519 --> 00:36:37,420 Quiero que veáis que el resultado sí que me dice Alejandra, Fernando, Luis y Pedro, 406 00:36:38,059 --> 00:36:44,119 pero aquí influye en la manera en que ejecuto las tuberías, ¿de acuerdo? 407 00:36:44,119 --> 00:36:50,119 Entonces, simplemente que tengáis en cuenta consideraciones como esta, ¿de acuerdo? 408 00:36:50,579 --> 00:37:08,820 Entonces, me queda explicar una tontería. Bueno, sí, la voy a explicar aquí aunque se me vayan 10 minutos más. Me queda un comando que lo voy a mostrar aquí, que es el último que vamos a ver en cuanto a reaccionamiento a tuberías, que es el siguiente. 409 00:37:08,820 --> 00:37:30,539 Este lo hemos visto, este lo hemos visto, este de aquí. ¿Cómo funciona este comando? Este comando, fijaros que me dice envía la salida de un comando a dos sitios a la vez, a un fichero y a pantalla. 410 00:37:30,539 --> 00:37:51,639 ¿Vale? Fijaros cómo funciona. Es ti, las opciones, que solamente os voy a pedir esta opción, guión a. Ahora vamos a ver dos ejemplos para que lo veáis. Fijaros este de aquí que yo tengo. Voy a quitar esto de su momento. Le digo, oye, quiero que me ejecutes el comando ls. Y se lo paso al comando ti. ¿Qué es lo que hace el comando ti? 411 00:37:51,639 --> 00:38:08,199 El comando t lo envía a dos sitios, ¿sí? Lo envía a dos sitios. Lo envía a la salida estándar, que es esta de aquí, a la salida estándar, es decir, a pantalla. 412 00:38:08,199 --> 00:38:17,440 y además lo guarda en el ficherito que le hemos puesto ahí, fich.txt, ¿sí? Hace las dos cosas en uno, ¿sí? 413 00:38:18,000 --> 00:38:24,260 Si yo no le digo nada, si este ficherito de aquí existe, lo que hace es sobrescribirlo. 414 00:38:24,840 --> 00:38:33,480 Pero si yo no quiero que sobrescriba, sino que lo añada, para eso tenemos esta opción, la opción guión a, ¿sí? 415 00:38:33,480 --> 00:38:52,639 En la siguiente transparencia lo veis con un dibujito que para mí está muy claro de cómo funciona. Podéis ver el comando T como si fuese lo de la canalización que nosotros tenemos aquí. Lo pongo por aquí. Es decir, esta tubería. ¿Qué es lo que hace el comando T? 416 00:38:52,639 --> 00:39:09,280 El comando ti, cuando yo pongo aquí el ti, me dice, vale, lo voy a mandar por un lado, ¿vale? A un ficherito que yo te diga. Y por otro, ¿vale? Lo voy a mandar a pantalla. Entonces, lo envía a dos sitios a la vez. 417 00:39:09,280 --> 00:39:29,659 Entonces, fijaros aquí abajo que me dice, oye, quiero que me ejecutes el comando ls y se lo voy a pasar al comando ti. Entonces, el comando ti lo va a mostrar en dos sitios, por pantalla y además lo va a guardar en este ficherito. 418 00:39:29,659 --> 00:39:32,179 Pero fijaros que además me dice 419 00:39:32,179 --> 00:39:34,280 Oye, pues la parte que va a la pantalla 420 00:39:34,280 --> 00:39:35,559 No la envíes a la pantalla 421 00:39:35,559 --> 00:39:38,340 Sino que envíasela al comando less 422 00:39:38,340 --> 00:39:40,320 ¿Sí? 423 00:39:41,679 --> 00:39:43,019 Entonces, el comando t 424 00:39:43,019 --> 00:39:44,679 La verdad es que está chulísimo 425 00:39:44,679 --> 00:39:48,019 Entonces vamos a ver un ejemplo de cómo funciona el comando t 426 00:39:48,019 --> 00:39:54,320 Salgo de aquí 427 00:39:54,320 --> 00:39:59,650 Imaginaros 428 00:39:59,650 --> 00:40:01,750 Que yo le digo 429 00:40:01,750 --> 00:40:04,250 Oye, quiero que me muestres 430 00:40:04,250 --> 00:40:06,010 El ficherito 431 00:40:06,010 --> 00:40:09,210 nombres mayúsculas 432 00:40:09,210 --> 00:40:11,690 esto me muestra los nombres en mayúsculas 433 00:40:11,690 --> 00:40:14,730 vamos a decirle que nos muestre los tres primeros 434 00:40:14,730 --> 00:40:16,989 para que no sea tan grande 435 00:40:16,989 --> 00:40:21,250 quiero que me muestre los tres primeros nombres 436 00:40:21,250 --> 00:40:24,610 y ahora, mediante la tubería 437 00:40:24,610 --> 00:40:26,150 se lo voy a pasar al comando ti 438 00:40:26,150 --> 00:40:29,550 y al comando ti le voy a poner 439 00:40:29,550 --> 00:40:35,059 salida1.txt 440 00:40:35,059 --> 00:40:37,239 y quiero que veáis que hace esto 441 00:40:37,239 --> 00:40:40,119 me lo sigue mostrando en pantalla 442 00:40:40,119 --> 00:40:42,320 pero además me ha creado 443 00:40:42,320 --> 00:40:44,139 un ficherito que se llama 444 00:40:44,139 --> 00:40:45,940 salida1.txt 445 00:40:45,940 --> 00:40:46,780 ¿sí? 446 00:40:47,820 --> 00:40:50,219 entonces, ¿qué es lo que ha hecho? me lo ha enviado 447 00:40:50,219 --> 00:40:51,679 a dos sitios 448 00:40:51,679 --> 00:40:54,300 ¿vale? este comando 449 00:40:54,300 --> 00:40:55,039 ¿qué es lo que ha hecho? 450 00:40:55,820 --> 00:40:58,420 por un lado, me lo envía 451 00:40:58,420 --> 00:40:59,920 a la salida 452 00:40:59,920 --> 00:41:02,280 hemos visto que me lo pone en pantalla 453 00:41:02,280 --> 00:41:04,079 y por otro lado 454 00:41:04,079 --> 00:41:06,320 me lo guarda en este ficherito 455 00:41:06,320 --> 00:41:25,559 Es decir, me hace dos operaciones en una. ¿Lo veis? ¿Sí? Pero es que también puedo hacer cosas como esta. Le digo, oye, quiero que no me lo machaques, quiero que me lo añadas, quiero que me lo añadas ahora, ¿vale? La A es para que si existe el fichero me lo añadas. 456 00:41:25,559 --> 00:41:40,650 Y además, quiero que lo que muestres en pantalla, pues quiero que me lo conviertas de mayúscula, por ejemplo, a minúsculas, ¿sí? Vamos a ver qué hace este comando. 457 00:41:40,650 --> 00:41:44,090 ¿Qué es lo que ha hecho este comando? 458 00:41:45,690 --> 00:41:50,789 Primeramente, me ha mostrado las tres líneas del ficherito 459 00:41:50,789 --> 00:41:54,829 Se la ha pasado al comando ti 460 00:41:54,829 --> 00:41:57,369 Y el comando ti, ¿qué es lo que va a hacer? 461 00:41:57,369 --> 00:42:00,150 Como le hemos dicho aquí, la opción guión a 462 00:42:00,150 --> 00:42:06,809 Es decir, queremos añadir al ficherito salida.txt el resultado de este comando 463 00:42:06,809 --> 00:42:09,949 Es decir, este comando se lo va a pasar aquí 464 00:42:09,949 --> 00:42:22,989 Así que las tres primeras líneas de nombre mayúsculas, ¿a quién se le va a añadir? Al ficherito salida1.txt. El salida1.txt ya tenía tres líneas, así que ¿ahora cuántas va a tener? Pues otras tres. 465 00:42:22,989 --> 00:42:40,550 ¿Sí? Pero es que además, para decirle que, oye, además me vas a mostrar la salida en pantalla, pero además, ¿vale? Es decir, pero en lugar de mostrarlo en pantalla, se lo vas a pasar al siguiente comando. 466 00:42:40,550 --> 00:42:47,550 ¿Y qué es lo que hace el siguiente comando? Pues me convierte, en este caso, las mayúsculas a minúsculas. 467 00:42:48,409 --> 00:42:54,309 Pero mi pregunta es, ¿en salida 1.txt qué ha metido? ¿Las mayúsculas o las minúsculas? 468 00:42:55,050 --> 00:43:05,469 Porque esto lo ha convertido después. Así que si yo le digo que me haga un cat de salida 1, fijaros que están lo que teníamos antes. 469 00:43:05,469 --> 00:43:08,070 esto es lo que había antes 470 00:43:08,070 --> 00:43:11,789 y esto es lo que ha añadido ahora del comando ti 471 00:43:11,789 --> 00:43:15,469 entonces teníamos 472 00:43:15,469 --> 00:43:18,570 este comando 473 00:43:18,570 --> 00:43:23,010 y hemos visto que teníamos lo de antes 474 00:43:23,010 --> 00:43:26,170 y teníamos lo que ha añadido este comando 475 00:43:26,170 --> 00:43:28,449 este comando que es lo que ha añadido 476 00:43:28,449 --> 00:43:32,230 pues ha añadido esto de aquí 477 00:43:32,230 --> 00:43:33,030 ¿de acuerdo? 478 00:43:33,030 --> 00:44:02,949 Y además, repito, como lo muestra en pantalla, no quiero que lo muestres en pantalla, sino que se lo pases a este comando y este comando lo que ha hecho es mostrarnos los tres primeros nombres en minúscula. ¿Entendéis esto? ¿Sí? Entonces, hay veces que está muy bien utilizar el comando t, porque me hace dos cosas en una. Es una tubería en forma de t, que lo envía a dos sitios diferentes, a pantalla y a un fichero. ¿De acuerdo? ¿Sí? Vale. 479 00:44:03,030 --> 00:44:05,489 Pues solamente me queda un comando 480 00:44:05,489 --> 00:44:06,969 Que lo he metido aquí, pero bueno 481 00:44:06,969 --> 00:44:09,650 Que sepáis que tenéis un comando 482 00:44:09,650 --> 00:44:12,269 Que lo he metido en estas transparencias 483 00:44:12,269 --> 00:44:13,409 Pero no sé muy bien por qué 484 00:44:13,409 --> 00:44:13,949 Pero en fin 485 00:44:13,949 --> 00:44:16,909 Imaginaros que nosotros tenemos esto 486 00:44:16,909 --> 00:44:18,090 Nano 487 00:44:18,090 --> 00:44:23,110 Listado 1.txt 488 00:44:23,110 --> 00:44:26,710 Y tenemos una serie de valores ordenados 489 00:44:26,710 --> 00:44:28,489 Que tengo aquí 490 00:44:28,489 --> 00:44:28,969 1 491 00:44:28,969 --> 00:44:30,389 2 492 00:44:30,389 --> 00:44:31,630 3 493 00:44:31,630 --> 00:44:35,329 4, pero ordenados alfabéticamente 494 00:44:35,329 --> 00:44:37,789 así que yo voy a tener aquí 495 00:44:37,789 --> 00:44:42,590 Albacete, que no lo estoy poniendo ordenado 496 00:44:42,590 --> 00:44:46,210 Cuenca 497 00:44:46,210 --> 00:44:51,579 Barcelona 498 00:44:51,579 --> 00:44:59,690 yo qué sé, me lo estoy inventando 499 00:44:59,690 --> 00:45:06,280 yo tengo esos valores 500 00:45:06,280 --> 00:45:10,559 pues imaginaros que yo Cuenca 501 00:45:10,559 --> 00:45:13,539 Lo tengo tres veces repetidas 502 00:45:13,539 --> 00:45:16,860 Galicia lo tengo cinco veces repetidas 503 00:45:16,860 --> 00:45:17,920 ¿Vale? 504 00:45:18,119 --> 00:45:20,659 Porque imaginaros que yo tengo nombres de alumnos 505 00:45:20,659 --> 00:45:22,860 O nombres de departamentos 506 00:45:22,860 --> 00:45:24,860 Y yo quiero quitar los repetidos 507 00:45:24,860 --> 00:45:27,340 Es decir, yo quiero que me muestre este ficherito 508 00:45:27,340 --> 00:45:30,320 Pero que las líneas que están repetidas no me las repita 509 00:45:30,320 --> 00:45:33,199 Porque yo solamente quiero ver cuántos departamentos hay, por ejemplo 510 00:45:33,199 --> 00:45:36,440 O cuántos nombres diferentes tiene mi empresa 511 00:45:36,440 --> 00:45:37,719 O yo qué sé 512 00:45:37,719 --> 00:45:42,260 entonces si yo tengo este ficherito que tiene que estar ordenado 513 00:45:42,260 --> 00:45:45,199 tenéis este comando que se llama unic 514 00:45:45,199 --> 00:45:47,159 que si yo le digo el nombre del ficherito 515 00:45:47,159 --> 00:45:48,820 pues fijaros que es lo que me hace 516 00:45:48,820 --> 00:45:52,280 me muestra el contenido de ese ficherito 517 00:45:52,280 --> 00:45:54,539 pero quitando las líneas repetidas 518 00:45:54,539 --> 00:45:57,920 que única condición tenéis que tener 519 00:45:57,920 --> 00:46:00,920 que ese ficherito tiene que estar ordenado 520 00:46:00,920 --> 00:46:04,639 y lo único que hace este comando es quitar las líneas repetidas 521 00:46:04,639 --> 00:46:05,820 ¿de acuerdo? 522 00:46:06,659 --> 00:46:06,860 ¿sí? 523 00:46:07,719 --> 00:46:15,760 Vale, pues con esto terminamos en este caso los redireccionamientos y ahora vamos a pasar a las segundas transparencias de comandos básicos de Linux. 524 00:46:16,300 --> 00:46:16,960 Venga, un saludo.