Professional Documents
Culture Documents
Pràctica Pt1 - UF2 - NF1 Adminsitració Des de La LINIA DE COMANDES
Pràctica Pt1 - UF2 - NF1 Adminsitració Des de La LINIA DE COMANDES
Desenvolupament de la pràctica
Escriu a sota de cada pregunta l'ordre que correspon a l'acció demanada en la
pregunta i la captura de pantalla corresponent. Les accions s'han de realitzar sobre
l'arxiu adjunt “alumnes_dam_damw.txt”i els resultats s'han de mostrar en pantalla.
1
2. Mostra les tres primeres línies de l'arxiu
tail -n +2 alumnes_dam_damw.txt | head -3
2
5. Mostra els registres de l'arxiu però només que continguin els camps "1r Cognom", "2n
Cognom" i "Nom”
cut -d ';' -f 2,3,4 alumnes_dam_damw.txt
3
7. Conta el nombre de línies de l'arxiu
cat alumnes_dam_damw.txt | wc -l
9. Filtrar les línies que contenen un mateix cognom (el que tu triis)
cat alumnes_dam_damw_utf8.txt | grep 'Garc.a'
4
cat alumnes_dam_damw_utf8.txt | grep -v 'Garc.a'
10. Mostra tots els registres de l'arxiu corresponents als alumnes menors d'edat
nascuts a L'Hospitalet
tail -n +2 alumnes_dam_damw_utf8.txt |awk 'BEGIN{FS=";"}{if ($10<18 &&
$8="Hospitalet"){print $0;}}'
11. Mostra tots els registres de l'arxiu però sense línies repetides
cat alumnes_dam_damw_utf8.txt | sort |uniq
5
12. Mostra el nombre d'alumnes menors d'edat
awk 'BEGIN{FS=";"}{if ($10<18){print $1;}}' alumnes_dam_damw_utf8.txt | wc -l
13. Mostra els alumnes que el seu primer cognom comencen per la lletra “a” o “c”
awk 'BEGIN{FS=";"}{if(match($2,/^[AC]/)){print $0}}' alumnes_dam_damw_utf8.txt
6
14. Mostra els alumnes que el seu primer cognom tenen menys de 8 lletres
tail -n +2 alumnes_dam_damw_utf8.txt |awk 'BEGIN{FS=";"}{if (length($2)<8){print
$0;}}'
7
16. Mosta tot l'arxiu en majúscules
cat alumnes_dam_damw_utf8_clean.txt | tr [[:lower:]] [[:upper:]]
8
17. Mosta tot l'arxiu en minúscules
cat alumnes_dam_damw_utf8_clean.txt | tr [[:upper:]] [[:lower:]]
9
18. Mosta tot l'arxiu sense accents
iconv -f utf-8 -t ascii//TRANSLIT alumnes_dam_damw_utf8_clean.txt
1
19. Mostra tots els registres de l'arxiu en el següent orde:
"1r Cognom";"2n Cognom";"Nom;"Data naixement";"Edat";"Telefon";"Ciutat";"CP"; Grup"
awk 'BEGIN{FS=";"}{print $2,$3,$4,$6,substr($10,0,length($10)),$7,$8,$9,$5}'
alumnes_dam_damw_utf8_clean.txt
1
20. Canvia el camp delimitador de l'arxiu “;” per “:”
cat alumnes_dam_damw_utf8_clean.txt | tr [";"] [":"]
1
21. Canvia el camp delimitador de l'arxiu “;” per “tabulador”
cat alumnes_dam_damw_utf8_clean.txt | tr [";"] ["\t"]
22. Assigna a cada alumne un login i un password. S'ha de mostrar els camps "1r
Cognom";"2n Cognom";"Nom; "login";"password”. El login està format per la
primera lletra del nom + el primer cognom. La "password” és una paraula de 8
caràcters l'atzar (veure la comande random)
tail -n +2 alumnes_dam_damw_utf8_clean.txt| awk 'BEGIN{FS=";";OFS=";";print
"1r Cognom;2n Cognom;Nom;login;password";}
{login=substr($4,1,1)$2;login=tolower(login);str_generator = "tr -dc '[:alnum:]'
</dev/urandom | head -c 8"; str_generator | getline password; close(str_generator);
print $2,$3,$4,login,password;}'
1
23. Substitueix en l'arxiu totes les “a” per “@”
cat alumnes_dam_damw_utf8_clean.txt | sed 's/[aAáà]/@/g'
1
24. Treu tots els espais en blanc
cat alumnes_dam_damw_utf8_clean.txt | sed 's/ //g'
1
25. Canvia el format de la data de naixement, de «22/03/1980» a «22-03-1980» en
tots el registres de l’arxiu
cat alumnes_dam_damw_utf8_clean.txt | sed 's/\//-/g'
1
26. Canvia el cognom Garcia per Gracia en l’arxiu
cat alumnes_dam_damw_utf8_clean.txt | sed 's/Garcia/Gracia/g'
1
27. Afegeix el camp «nacionalitat» a tots el registres del arxiu, amb el contingut
europeu
tail -n +2 alumnes_dam_damw_utf8_clean.txt | awk 'BEGIN{FS=";";OFS=";";print
"\"DNI\";\"1r Cognom\";\"2n Cognom\";\"Nom\";\"Grup\";\"Data
naixement\";\"Telèfon\";\"Ciutat\";\"CP\";\"Edat\";\"Nacionalitat\"";}
{nacionalitat=";europeu";print substr($0,0,length($0)) nacionalitat}'
me llevo horas encontrar que al coger el ultimo campo tambien cogia el \n...adv
1
28. Filtrar les línies que contenen un mateix cognom (el que tu triïs)
exercici 9 repetit??