Esercitazione 5
Bash scripting.
Esercizio 1
Scrivere uno script bash che dati come argomenti un nome di directory ed una parola da cercare, stampa la lista di tutti i nomi di file che contengono la parola data nella directory passata come argomento.
Esercizio 2
Scrivere uno script bash che prende “k>=2” nomi di file di ingresso e appende i primi “k-1” files nel file passato come ultimo argomento (k-esimo), scrivendo i file in ingresso nell'ordine da destra a sinistra (es. myscript.sh fileA fileB fileC – fileC conterra' in sequenza prima fileB e poi fileA).
Esercizio 3
Scrivere uno script bash che dati 2 file di testo in input (f1 ed f2) produce il seguente menu di scelta per l'utente:
1. rimuovere i file “f1” ed “f2”
2. archiviare i file “f1” ed “f2”
3. appendere il file “f1” al file “f2”
4. esci
Implementare le 3 opzioni e testare tutti i casi. Per l'opzione 1 chiedere conferma prima della rimozione dei file; per l'opzione 2 utilizzare i comandi tar
e gzip
in pipeline e produrre l'archivio compresso “f1f2.tar.gz”. Non utilizzare il builtin select
per implementare il menu.
Esercizio 4
Scrivere uno script bash che preso in input un nome di file testuale che contiene solo linee con il seguente formato:
1490127894 - 21 0 23 0 20 2 32 15 1 0 0 0 0 0 4 3084940 13570834 4 6 1490127936 - 7054 1 191 1 905 6 7167 125 12 0 0 0 0 0 5 7239070 16676254 12 1035 1490127944 - 8261 2 218 3 1086 8 8394 148 15 0 0 0 0 0 3 8287914 18773540 15 1036 ...
trovi il valore massimo degli elementi nella colonna 17 e calcoli la media degli elementi della stessa colonna.
Esercizio 5 (homework)
Scrivere uno script bash che preso in input un nome di file testuale ed una parola (chiamata key), cerca nel file testuale, che contiene o commenti (linee che iniziano con #) o linee vuote, oppure seguenze key = value una per riga, la parola passata come chiave e ne stampa il valore (value). Se la parola non è presente stampa un opportuno messaggio.