Filtres
De franhpWiki
Ordenando lineas de un fichero
1.A partir d'un fitxer 'setmana.txt' amb els dies de la setmana, crea un fitxer 'dies' on apareixen els dies ordenats alfabèticament.
gandalf:filtres franhp$ sort setmana.txt > dies.txt && cat dies.txt dijous dilluns dimarts dimecres dissabte diumenge divenres gandalf:filtres franhp$
2.A partir del fitxer 'alumnes.txt' amb el nom i cognom de 5 alumnes, genera el fitxer 'ordre_cognom.txt' amb els alumnes ordenats per cognoms i nom. Fixa-t'hi que poden haver dos germans a la mateixa classe.
gandalf:filtres franhp$ sort --key=2 --key=1 alumnes.txt > ordre_cognoms.txt && cat ordre_cognoms.txt alejandro cenzano hector costa fran hermoso toni hermoso francesc martinez gandalf:filtres franhp$
Cortando texto
1.A partir d'un fitxer 'setmana.txt' amb els dies de la setmana, crea un fitxer 'abrevia_setmana' amb els 3 primers caràcters de cada dia.
gandalf:filtres franhp$ cut -c 1-3 setmana.txt| sort > abrevia_setmana.txt && cat abrevia_setmana.txt dij dil dim dim dis diu div gandalf:filtres franhp$
Pegando texto
4.Crea un fitxer 'mesos.txt' amb el nom dels mesos de l'any i altre 'dies,txt' amb els dies de cada mes. Combina els dos fitxers en altre 'dies_mes.txt' on apareix els dies que té cada mes. Suposem que febrer té 28 dies.
gandalf:filtres franhp$ paste dies mesos > dies_mes.txt && cat dies_mes.txt 31 gener 28 febrer 31 març 30 abril 31 maig 30 juny 31 juliol 31 agost 30 septembre 31 octubre 30 novembre 31 desembre gandalf:filtres franhp$
Formateando párrafos.
1.Comenta l'exemple final del punt Formateando párrafos.
gandalf:filtres franhp$ fmt -40 ejemplo4 Linux offers a variety of tools to use for pricessing and filtering text. These tools enable you to search for data... gandalf:filtres franhp$
Distribueix el text de ejemplo4 en linies de com a màxim 40 caràcters
Borrando o sustituyendo caracteres
1.A partir del fitxer 'setmana.txt', crea el fitxer 'SETMANA.TXT' amb els dies de la setmana en majúscules.
gandalf:filtres franhp$ tr 'a-z' 'A-Z' < setmana.txt | tee SETMANA.txt DILLUNS DIMARTS DIMECRES DIJOUS DIVENDRES DISSABTE DIUMENGE gandalf:filtres franhp$
2.A partir del fitxer 'SETMANA.TXT', substitueix 'DIUMENGE' per 'Dia de descans'.
gandalf:filtres franhp$ sed -e 's/DIUMENGE/Dia de descans/' setmana.txt DILLUNS DIMARTS DIMECRES DIJOUS DIVENDRES DISSABTE Dia de descans gandalf:filtres franhp$
Viendo el comienzo de un fichero
1.Mostra a partir del fitxer 'setmana.txt', els dies de dilluns a dijous.
gandalf:filtres franhp$ head -n 4 setmana.txt dilluns dimarts dimecres dijous gandalf:filtres franhp$
Viendo el final de un fichero
1.Mostra a partir del fitxer 'setmana.txt', els tres últims dies.
gandalf:filtres franhp$ tail -n 3 setmana.txt divendres dissabte diumenge gandalf:filtres franhp$
=Juntando múltiples ficheros
1.A partir del fitxer 'dies_mes.txt' i el fitxer 'mes_cole.txt', on es mostra el nom del mes i si hi ha classe, uneix els dos fitxers amb 'join'.
Mostrando ficheros en otros formatos
1.Escriu el fitxer 'setmana.txt' en hexadecimal.
gandalf:filtres franhp$ od -A x setmana.txt 0000000 064544 066154 067165 005163 064544 060555 072162 005163 0000010 064544 062555 071143 071545 062012 065151 072557 005163 0000020 064544 062566 062156 062562 005163 064544 071563 061141 0000030 062564 062012 072551 062555 063556 005145 000003c gandalf:filtres franhp$
Mostrando estadísticas de un fichero
1.Quantes paraules té el fitxer generat per 'man ls'?
gandalf:~ franhp$ man ls | wc -w
2285
gandalf:~ franhp$
Usando el editor de flujo (sed)
1.Què fa cada instrucció: a) $ sed 's/Pep/Josep/p' noms.txt Canvia Pep per Josep al fitxer noms.txt, mostrant les linies afectades
b) $ sed '!6s/Anna/Ana/w trobat.txt' noms.txt Canvia totes les Anna per Ana menys la que hi ha a la linia 6 del fitxer noms.txt i ho desa a trobat.txt
Ejercicios
Preguntas Pre-TEST
1.¿Qué herramienta se usa para añadir el número de línea a un fichero ?
nl
2.¿Qué herramienta permite combinar dos ficheros usando campos de unión?
join
3.¿Con qué utilidad se crean líneas de una determinada longitud en un fichero?
fmt
4.¿Qué herramienta se usa para ver el contenido de un fichero a la inversa?
tac
5.¿Qué herramienta permite borrar caracteres de un fichero?
tr o sed
6.¿Con qué herramienta se puede ver el contenido en hexadecimal de un fichero?
od
7.¿Con qué utilidad se pueden ordenar alfabéticamente los contenidos de un fichero?
sort
Preguntas TEST
1.¿Qué comando buscará de la linea 2 a la 20 en el archivo records los caracteres 1st y los reemplazara por los caracteres first?
A.sed s2-20/1st/first/ records B.sed 2-20s/1st/first/ records C.sed s2,20/1st/first/ records D.sed 2,20s/1st/first/ records
2.¿Qué comando dividirá el archivo researchpaper en varios archivos que contengan cada uno de ellos 60 líneas? (Escoge todas las respuestas correctas)
A.split -60 researchpaper B.split -C 60b researchpaper C.split -C 60 researchpaper D.split -l 60 researchpaper
3.¿Qué utilidad se usa para combinar las líneas de dos archivos diferentes? (Escoge todas las respuestas correctas)
A.split B.join C.paste D.cut
4.¿Qué usarías para ver las 5 últimas líneas del archivo myfiles?
A.tac myfiles B.tail myfiles C.tac -5 myfiles D.tail -5 myfiles
5.¿Cuál de las siguientes respuestas te permitirían ver el archivo myfiles en formato octal? (Escoge todas las correctas).
A.od myfiles B.od -t o myfiles C.od -t x myfiles D.od -o myfiles
6.¿Qué respuesta ordenaría alfabéticamente el fichero mylist, numeraría las líneas y finalmente lo separaría en ficheros que contuvieran 60 líneas cada uno?
A.sort mylist | nl > -60 lists B.sort mylist > nl > split -60 > lists C.sort mylist | nl | split -60 lists D.sort mylist | nl | tee lists | split -60 lists
7.La utilidad tac sirve para ver el contenido de un fichero de forma inversa. (Rellena)
8.¿Qué utilidad nos muestra el total de líneas de una archivo?
A.nl B.ln C.wc D.tr
9.La utilidad expand se usa para asegurarse que los archivos se verán igual, sin importar el sistema que se use para visionarlos, convirtiendo las tabulaciones en espacios.
10.¿Qué utilidad intenta convertir las líneas de un archivo en líneas de la misma longitud?
A.nl B.ln C.fmt D.expand
11.¿Con qué utilidad convertiríamos todas las minúsculas de un archivo a mayúsculas?
A.cut B.sed C.tac D.tr
12.¿Cuál de las siguientes respuestas usarías para verificar que las líneas de un archivo están ordenadas alfabéticamente?
A.sort -c B.sort -d C.sort -v D.sort -m
Escenarios
1.Necesitas imprimir el archivo grande que se ha creado en el ejercicio anterior de forma que cada pagina esté numerada y tenga una cabecera que contenga el nombre de tu empresa y la fecha actual. ¿Como realizarías esta tarea?
pr -h "ACME" researchpaper
