Esercizi finali
Ora che vi siete impratichiti con gli script, potete provare ad affrontare degli esercizi "completi" che richiedano tutte le compotenze acquisite fino ad ora.
File CSV
Un formato di file basato su file di testo utilizzato per l'importazione ed esportazione
- ad esempio da fogli elettronici o database - di una tabella di dati usato molto di frequente
è il comma-separated values (abbreviato in CSV). In realtà non esiste uno
standard completo per questo tipo di file, ma solo una serie di raccomandazioni.
Di solito ogni riga della tabella è rappresentata da una singola linea di testo. Ciascuna di
queste righe è a sua volta è suddivisa in campi - che corrispondono quindi alle singole colonne
della tabella - separate da un apposito carattere separatore, di solito una ,
. Ogni
campo rappresenta un valore.
Il primo problema da trattare per questa definizione è cosa fare nel caso in cui un valore contenga
al suo interno il carattere che separa i campi, ovvero il carattere che indica la fine di una linea.
La soluzione più semplice è quela di non ammettere valori che contengano questi caratteri speciali.
In questo caso, ad ogni riga della tabella corrisponde esattamente una linea di testo. Si può ovviare
a questo limite ricorrendo alla codifica che segue:
- se il valore contiene caratteri di fine linea, il carattere separatore o i doppi apici (
"
), esso viene racchiuso tra doppi apici e quelli eventualmente presenti nel valore sono raddoppiati.
wget https://people.cs.dm.unipi.it/limco/2021-22/files/breweries_us.csv
e aprendo il file con il vostro editor preferito. Il file contiene un elenco di birrifici artigianali negli Stati Uniti d'America. In particolare, la prima linea vi comunica che all'interno sono riportate:
brewery_name,type,address,website,state,state_breweries
Trovare tutti gli script
Osserviamo che tramite il comandofile
possiamo
identificare gli script bash. Ad esempio:
$ file /usr/bin/eagle /usr/bin/eagle: Bourne-Again shell script, ASCII text executable
scripts.txt
che listi tutti gli script bash contenuti in /usr/bin
;
più nel dettaglio, ogni riga deve contenere il nome dello script
e la sua dimensione in byte, separati da una virgola. Questo è un file
in formato CSV, che può essere facilmente importato in Microsoft Excel
o Libreoffice Calc per successive analisi. Si calcoli anche lo spazio
occupato da tutti gli script, e lo si stampi (senza scriverlo nel file).