Filters

Filters

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$ 
  1. 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

  1. 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. Distribueix el text de ejemplo4 en linies de com a màxim 40 caràcters
    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$ 

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$ 
  1. 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’.
    gandalf:filtres franhp$ join dies_mes.txt mes_cole.txt
    [...]

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.

  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

last updated on April 11, 2015, 7:46 p.m.
Back