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.

Lista degli utenti

Il comando getent passwd dato su una delle macchine genera la lista di tutti gli utenti presenti, in un formato particolare (provare per vedere com'è fatto l'output).

Si realizzi uno script per estrarre la lista di tutti i nomi e cognomi da questa lista, ordinati per cognome.
È disponibile una Video-soluzione dell'esercizio (che richiede la password di laboratorio per accedere, per non esporre dati sensibili pubblicamente).

Ordinare una collezione musicale

Nella cartelle /home/robol/music trovate una (finta) collezione musicale (in realtà composta solo da file vuoti), che potete copiare nella vostra home con il comando

$ cp -r /home/robol/music ~/
I file musicale hanno tutti come nome una stringa Autore_Titolo.mp3.
Si scriva uno script per riorganizzare la collezione all'interno di cartelle, divisa per autore. I file musicali finali dovranno avere come nome solamente il titolo, e come estensione .mp3.

Trovare tutti gli script

Osserviamo che tramite il comando file possiamo identificare gli script bash. Ad esempio:
$ file /usr/bin/eagle
/usr/bin/eagle: Bourne-Again shell script, ASCII text executable
Si costruisca uno script che crei un file 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).