L’obiettivo di questa esercitazione è imparare a gestire dati strutturati tramite Bash, automatizzando la creazione di pagine HTML a partire da un file CSV.
Lo studente dovrà utilizzare variabili, cicli e comandi di manipolazione del testo, senza ricorrere a linguaggi esterni.
Scarica i file necessari e scegli la variante che preferisci. Entrambe le varianti generano pagine HTML a partire da rubrica.csv.
Esecuzione consigliata:
# Rendi eseguibile e avvia (consigliato)
chmod +x script.sh
./script.sh
# In alternativa (nessun chmod richiesto):
bash script.sh
Script (esempio):
righe=$(wc -l < rubrica.csv)
echo "Righe trovate: $righe"
for i in $(seq 2 "$righe");
do
riga=$(head -n "$i" rubrica.csv | tail -n 1);
nome=$(echo "$riga" | cut -d";" -f1);
cognome=$(echo "$riga" | cut -d";" -f2);
numero=$(echo "$riga" | cut -d";" -f3);
indirizzo=$(echo "$riga" | cut -d";" -f4 | tr '"' ' ');
cap=$(echo "$riga" | cut -d";" -f5 | tr -d '"');
file="${nome}_${cognome}.html";
echo "<!DOCTYPE html>" > "$file";
echo "<html lang=\"it\">" >> "$file";
echo "<head>" >> "$file";
echo " <meta charset=\"UTF-8\">" >> "$file";
echo " <title>$nome $cognome</title>" >> "$file";
echo "</head>" >> "$file";
echo "<body>" >> "$file";
echo " <h1>Dettagli di $nome $cognome</h1>" >> "$file";
echo " <p>Numero: $numero</p>" >> "$file";
echo " <p>Indirizzo: $indirizzo</p>" >> "$file";
echo " <p>CAP: $cap</p>" >> "$file";
echo "</body>" >> "$file";
echo "</html>" >> "$file";
done
Inseriamo automaticamente il DOCTYPE all’inizio di ogni file HTML:
for file in $(find . -type f -name "*.html")
do
sed -i '1i<!DOCTYPE html>' "$file"
done
Inseriamo poi il tag meta charset subito dopo il tag <head>:
for file in $(find . -type f -name "*.html")
do
sed -i '/<head>/a\ <meta charset="UTF-8">' "$file"
done