Filtres

De franhpWiki

Revisió de 18:37, 23 nov 2009; Admin (Discussió | contribucions)
(dif) ←Versió més antiga | Versió actual (dif) | Versió més nova→ (dif)
Dreceres ràpides: navegació, cerca

Contingut

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