Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
60 C6 Puntiamo più in alto<br />
5.6 Ricerche su testo con grep<br />
grep consente di eseguire ricerche sulla base di un pattern di ricerca. Il pattern segue i<br />
principi delle regexpr. La sintassi è la seguente:<br />
grep [OPZIONI] PATTERN [FILE]<br />
Il pattern è il solo elemento necessario. Le opzioni servono a modificare il funzionamento<br />
dei grep e soprattutto l’output generato dal comando. Il comando può funzionare<br />
sia su file su disco che su stream di output di altri comandi. Ad esempio se volessimo<br />
vedere tutte le directory presenti nella nostra home directory, potremmo usare il comando:<br />
$ ls -l ~ | grep "^d"<br />
drwxr-sr-x 2 tx0 tx0 4096 Sep 23 18:51 CorsoUnix<br />
drwxr-sr-x 5 tx0 tx0 4096 Nov 28 01:51 LaTeX<br />
drwx--S--- 2 tx0 tx0 4096 Oct 31 00:16 Mail<br />
drwxr-sr-x 9 tx0 tx0 4096 Oct 9 14:50 Perl<br />
drwx--S--- 2 tx0 tx0 4096 Apr 18 2000 mail<br />
$<br />
In questo caso grep ha eseguito una ricerca per il pattern ^d sull’output di ls, trovando<br />
le sole directory in quanto solo quelle generano una linea che inzia con una d.<br />
Diciamo che vogliamo cercare tutti i file tar.gz che siano collocati in /tmp/. Una possibile<br />
soluzione è quella di utilizzare find /tmp -regex ".*tar_gz". Questa possibilità<br />
ha però lo svantaggio di lavorare direttamente sul disco. Alternativamente è consigliabile<br />
un:<br />
$ locate tar.gz | grep /tmp<br />
/tmp/archive.tar.gz<br />
/tmp/backup.tar.gz<br />
/usr/local/tmp/old_backup.tar.gz<br />
$<br />
Raffinando ultreriormente il criterio di ricerca potremmo optare per:<br />
$ locate tar.gz | grep "^/tmp"<br />
/tmp/archive.tar.gz<br />
/tmp/backup.tar.gz<br />
$<br />
il che vincola i match ai soli file contenuti nella directory /tmp o sottostanti.