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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>di</strong>ff<br />

patch<br />

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

#+ riducendo ad una sola le Z multiple consecutive.<br />

# "tr -s ’\173-\377’ Z" trasforma tutti i caratteri oltre la ’z’ in Z,<br />

#+ riducendo ad una sola le Z multiple consecutive, liberandoci così <strong>di</strong> tutti i<br />

#+ caratteri strani che la precedente istruzione non è riuscita a trattare.<br />

# Infine, "tr Z ’ ’" trasforma tutte queste Z in spazi, che saranno<br />

#+ considerati separatori <strong>di</strong> parole dal ciclo che segue.<br />

# **********************************************************<br />

# Notate la tecnica <strong>di</strong> concatenare <strong>di</strong>versi ’tr’,<br />

#+ ma con argomenti e/o opzioni <strong>di</strong>fferenti ad ogni passaggio.<br />

# **********************************************************<br />

for parola in $elenco # Importante:<br />

# non bisogna usare $elenco col quoting.<br />

# "$elenco" non funziona.<br />

# Perché no?<br />

do<br />

lunstr=${#parola} # Lunghezza della stringa.<br />

if [ "$lunstr" -lt "$LUNMINSTR" ] # Salta le stringhe con meno<br />

#+ <strong>di</strong> 3 caratteri.<br />

then<br />

continue<br />

fi<br />

done<br />

grep -Fw $parola "$DIZIONARIO" # Cerca solo le parole complete.<br />

^^^ # Opzioni "stringhe Fisse" e<br />

#+ "parole (words) intere".<br />

exit $?<br />

Confronti<br />

<strong>di</strong>ff: flessibile utility per il confronto <strong>di</strong> file. Confronta i file <strong>di</strong> riferimento riga per riga,<br />

sequenzialmente. In alcune applicazioni, come nei confronti <strong>di</strong> <strong>di</strong>zionari, è vantaggioso filtrare i file<br />

<strong>di</strong> riferimento con sort e uniq prima <strong>di</strong> collegarli tramite una pipe a <strong>di</strong>ff. <strong>di</strong>ff file-1 file-2<br />

visualizza le righe dei file che <strong>di</strong>fferiscono, con le parentesi acute ad in<strong>di</strong>care a quale file ogni<br />

particolare riga appartiene.<br />

L’opzione --side-by-side <strong>di</strong> <strong>di</strong>ff visualizza riga per riga, in colonne separate, ogni file<br />

confrontato con un segno in<strong>di</strong>cante le righe non coincidenti. Le opzioni -c e -u, similmente,<br />

rendono più facile l’interpretazione dell’output del comando.<br />

284

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

Saved successfully!

Ooh no, something went wrong!