mkdir laboratorio_linux && cd laboratorio_linux.cat, head, tail, column.
Obiettivi: creare un file di testo, aggiungere righe, visualizzarlo e fare un semplice backup.
studenti.txtecho "Mario Rossi 3INF 7.5" > studenti.txt
echo "Luca Bianchi 4INF 6.8" >> studenti.txt
echo "Sara Verdi 3INF 8.2" >> studenti.txt
echo "Paolo Neri 5INF 7.9" >> studenti.txt
cat studenti.txt
nl studenti.txt
cat studenti.txt > backup_studenti.txt
Domande per la classe: cosa succede se rilancio i comandi echo ...?
E se rilancio il backup con > rispetto a >>?
Obiettivi: creare un file CSV con separatore ; e visualizzarlo
in modo leggibile.
studenti.csvecho "cognome;nome;classe;media" > studenti.csv
echo "Rossi;Marco;3INF;7.2" >> studenti.csv
echo "Bianchi;Luca;4INF;6.5" >> studenti.csv
echo "Verdi;Sara;3INF;8.1" >> studenti.csv
echo "Neri;Paolo;5INF;7.9" >> studenti.csv
echo "Costa;Anna;3INF;7.0" >> studenti.csv
echo "Greco;Elisa;4INF;8.3" >> studenti.csv
Se disponibile, usiamo column per avere le colonne allineate:
column -t -s";" studenti.csv
In alternativa:
cat studenti.csv
Obiettivi: usare cut per estrarre colonne dal CSV e salvare
risultati
in file diversi.
cut -d";" -f1,2 studenti.csv
cut -d";" -f1,2 studenti.csv > elenco_nomi.txt
cut -d";" -f1,2,3 studenti.csv
Variante: prova a cambiare l'ordine delle colonne nell'opzione -f
e osserva l'effetto.
Obiettivi: cercare righe che contengono una certa classe o una certa media, filtrare ed escludere righe.
grep ";3INF;" studenti.csv
grep ";4INF;" studenti.csv
grep ";8\." studenti.csv
grep -v ";3INF;" studenti.csv
grep -i "marco" studenti.csv
Obiettivi: usare head e tail per visualizzare solo
l’inizio o la fine di un file.
head -3 studenti.csv
tail -2 studenti.csv
tail -n +2 studenti.csv
tail -n +2 studenti.csv | head -4
Obiettivi: ordinare il CSV per cognome e per media crescente/decrescente.
sort -t";" -k1,1 studenti.csv
sort -t";" -k4,4n studenti.csv
sort -t";" -k4,4nr studenti.csv
Obiettivi: usare wc per contare righe e combinare wc con grep.
wc -l studenti.csv
grep ";3INF;" studenti.csv | wc -l
Nota: il conteggio include solo le righe che contengono ;3INF; (non l’intestazione).
Obiettivi: combinare più comandi con pipe per ottenere risultati complessi.
grep ";3INF;" studenti.csv | sort -t";" -k4,4nr > 3INF_classifica.txt
grep ";8\." studenti.csv | cut -d";" -f1,4
grep ";8\." studenti.csv > eccellenti.csv
Obiettivi: generare un file con molte righe e usare head, tail, grep.
seq 1 200 > numeri.txt
head -10 numeri.txt
tail -5 numeri.txt
grep "3" numeri.txt
Obiettivo: usare in autonomia echo, grep,
cut, sort, head, tail, wc.
mialclasse.csv con almeno 10
studenti della tua classe (cognome;nome;classe;media).mialclasse_nomi.txt.
mialclasse_classifica.txt.Suggerimento: ogni punto si può risolvere combinando i comandi visti negli esercizi precedenti.