28.05.2013 Views

LOA HackLab - Autistici

LOA HackLab - Autistici

LOA HackLab - Autistici

SHOW MORE
SHOW LESS

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.

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

Saved successfully!

Ooh no, something went wrong!