11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

look<br />

Capitolo 12. Filtri, programmi e coman<strong>di</strong> esterni<br />

agrep (approximate grep) grep d’approssimazione, estende le capacità <strong>di</strong> grep per una ricerca per<br />

approssimazione. La stringa da ricercare <strong>di</strong>fferisce per un numero specifico <strong>di</strong> caratteri dalle<br />

occorrenze effettivamente risultanti. Questa utility non è, <strong>di</strong> norma, inclusa in una <strong>di</strong>stribuzione<br />

Linux.<br />

Suggerimento: Per la ricerca in file compressi vanno usati i coman<strong>di</strong> zgrep, zegrep o zfgrep.<br />

Sebbene possano essere usati anche con i file non compressi, svolgono il loro compito più<br />

lentamente che non grep, egrep, fgrep. Sono invece utili per la ricerca in una serie <strong>di</strong> file misti,<br />

alcuni compressi altri no.<br />

Per la ricerca in file compressi con bzip si usa il comando bzgrep.<br />

Il comando look opera come grep, ma la ricerca viene svolta in un “<strong>di</strong>zionario”, un elenco <strong>di</strong> parole<br />

or<strong>di</strong>nate. In modo predefinito, look esegue la ricerca in /usr/<strong>di</strong>ct/words. Naturalmente si può<br />

specificare un <strong>di</strong>verso percorso del file <strong>di</strong>zionario.<br />

Esempio 12-17. Verificare la vali<strong>di</strong>tà delle parole con un <strong>di</strong>zionario<br />

#!/bin/bash<br />

# lookup: Esegue una verifica <strong>di</strong> <strong>di</strong>zionario <strong>di</strong> tutte le parole <strong>di</strong> un file dati.<br />

file=file.dati # File dati le cui parole devono essere controllate.<br />

echo<br />

while [ "$Parola" != fine ] # Ultima parola del file dati.<br />

do<br />

read parola # Dal file dati, a seguito della re<strong>di</strong>rezione a fine ciclo.<br />

look $parola > /dev/null # Per non visualizzare le righe del<br />

#+ file <strong>di</strong>zionario.<br />

verifica=$? # Exit status del comando ’look’.<br />

if [ "$verifica" -eq 0 ]<br />

then<br />

echo "\"$parola\" è valida."<br />

else<br />

echo "\"$parola\" non è valida."<br />

fi<br />

done

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!