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.

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

egrep - (extended grep) grep esteso - è uguale a grep -E. Tuttavia usa una serie leggermente <strong>di</strong>versa<br />

ed estesa <strong>di</strong> Espressioni Regolari che possono rendere la ricerca un po’ più flessibile.<br />

fgrep - (fast grep) grep veloce - è uguale a grep -F. Esegue la ricerca letterale della stringa (niente<br />

espressioni regolari), il che solitamente accelera sensibilmente l’operazione.<br />

Nota: In alcune <strong>di</strong>stribuzioni Linux, egrep e fgrep sono link simbolicia, o alias, <strong>di</strong> grep, invocato<br />

però con le opzioni -E e -F, rispettivamente.<br />

Esempio 12-16. Cercare una definizione nel Webster’s Dictionary ed. 1913<br />

#!/bin/bash<br />

# <strong>di</strong>ct-lookup.sh<br />

# Questo script ricerca delle definizioni nel Webster’s Dictionary ed. 1913.<br />

# Si tratta <strong>di</strong> un <strong>di</strong>zionario <strong>di</strong> Dominio Pubblico <strong>di</strong>sponibile per il download<br />

#+ presso vari siti, compreso il<br />

#+ Project Gutenberg (http://www.gutenberg.org/etext/247).<br />

#<br />

# Prima <strong>di</strong> utilizzarlo va convertito dal formato DOS a quello UNIX<br />

#+ (solo gli LF a fine riga).<br />

# Deve essere salvato nel formato testo ASCII non compresso.<br />

# Impostate la variabile DEFAULT_DICTFILE a percorso/nome_file.<br />

E_ERR_ARG=65<br />

MAXRIGHE=50 # Numero massimo <strong>di</strong> righe<br />

#+ da visualizzare.<br />

DEFAULT_DICTFILE="/usr/share/<strong>di</strong>ct/webster1913-<strong>di</strong>ct.txt"<br />

# Percorso/nome del <strong>di</strong>zionario<br />

#+ preimpostato.<br />

# Mo<strong>di</strong>ficatelo se necessario.<br />

# Nota:<br />

# ----<br />

# In questa particolare e<strong>di</strong>zione del 1913 del Webster<br />

#+ ogni voce inizia con una lettera maiuscola<br />

#+ (la parte restante in caratteri minuscoli).<br />

# Solo la "prima riga" <strong>di</strong> ciascuna voce inizia in questo modo<br />

#+ ed è per questo motivo che l’algoritmo <strong>di</strong> ricerca seguente funziona.<br />

if [[ -z $(echo "$1" | sed -n ’/^[A-Z]/p’) ]]<br />

# Deve essere specificata almeno una voce da ricercare e<br />

#+ deve iniziare con una lettera maiuscola.<br />

then<br />

echo "Utilizzo: ‘basename $0‘ Voce [file-<strong>di</strong>zionario]"<br />

echo<br />

echo "Nota: La voce da ricercare deve iniziare con una lettera maiuscola,"<br />

259

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

Saved successfully!

Ooh no, something went wrong!