Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Cercare nei file: grep

In questa lezione tratteremo di un comando che ritengo davvero utilisso: il comando grep.

Grazie a questa potente parolina magica è infatti possibile effettuare ricerche complesse sui file al fine di verificare che contengano o meno determinate frasi o parole.

(L'articolo continua più sotto...)

Facciamo un esempio: poniamo di voler sapere se all'interno del file "spesa.txt" è presente la parola "zucchero".

grep "zucchero" spesa.txt
sulla base di questa istruzione grep restituirà tutte le linee del file indicato che contengono la parola cercata.
Ovviamente, visto così, potrebbe non sembrare un granchè... allora facciamo qualche altro esempio e poniamo di voler cercare la parola zucchero tra tutti i file presenti in una data directory e nelle sue eventuali sub-directory:
grep -r "zucchero" /home/listespesa/
Nell esempio qui sopra abbiamo utilizzato grep con opzione ricorsiva (-r) per andare a scovare, non solo nella dir indicata ma anche in tutte le eventuali sub-directory, la presenza di file contenenti la parola indicata.

Ma la vera forza di grep sta nel suo utilizzo combinato con le regular expressions (espressioni regolari).
Non credo sia il caso di affrontare esaustivamente l'argomento (troppo lungo e complesso ai fini del nostro corso) tuttavia ritengo opportuno un cenno a due caratteri particolari che, sono certo, saranno amici di molte vostre ricerche... sto parlando di "." e "*".

Il punto (.) può essere utilizzato per indicare un (nota bene: uno) carattere qualsiasi.
facciamo un esempio: poniamo di aver archiviato sul nostro computer le recensioni di centinaia di film visti in TV. Poniamo che ogni scheda sia stata scritta in un separato file txt. Ora poniamo di voler cercare tra queste schede tutti i film di "Michelle Pfeiffer" ma supponiamo di non ricordare esatamente come si scrive "Pfeiffer". Cosa fare? Semplice... scriviamo solo la parte di parola di cui siamo certi e sostituiamo con dei puntini le lettere di cui non siamo sicuri, così:

grep -r "pf..ffer" /home/videoteca/
Nell'esempio abbiamo messo due punti i quali indicano le lettere "ei" di cui non siamo sicuri.
Ma possiamo fare ancora di più. Poniamo di ricordare solo che il nome finisce con "ffer" e niente più:
grep -r "*ffer" /home/videoteca/
Questa istruzione ritornerà tutti i file in cui è presente una qualsiasi parola che finisce con "ffer" in quanto il simbolo asterisco (*) indica non uno, bensì un arbitrario numero di lettere (0,1,2,10,100,...).
Ovviamente quelle viste sopra sono dabbero ben poca cosa rispetto alle vere capacità di grep, tuttavia preferisco rimandare l'approfondimento dell'argomento a futuri tutorial, ritenendo sufficiente l'avervi introdotto il comando di cui potete già fare interessante uso.

Corsi
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Corso Ruby e Ruby On RailsCorso Ruby e Ruby On Rails
Creare software ed applicazioni Web con Ruby e ROR. A partire da 49 €.
Sommario
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122