Grep attraverso esempi

Nell’ambiente *nix (Unix, linux) grep è un comando usato per la ricerca di testo all’interno dei file. Si tratta di uno strumento da usare nella linea di comando, molto ben conosciuto dagli amministratori di sistema che spesso ne fanno un uso quotidiano nella loro attività.
Grazie alle varie opzioni disponibili è possibile ottenere risultati notevoli. Qui riporto una serie di esempi che possono rivelarsi utili e suggerire possibili utilizzi.

linux hack

Ricerca del testo usando grep

Ricerca del testo “pippo” nel file /etc/passwd file. Verranno mostrate come risultato tutte le linee che contengono il testo cercato.

$ grep “pippo” /etc/passwd

Un uso alternativo è tramite pipe, passando il testo da cercare. Il risultato è uguale.

$ cat /etc/passwd | grep “pippo”

Ricerca senza distinzione maiuscole/minuscole

L’uso dell’opzione -i indica a grep di ignorare il fatto che il testo sia in maiuscolo o minuscolo. Quindi la ricerca verrà effettuata indiffirentemente per ogni combinazione, come ad esempio Pippo, piPPO, PippO, ecc.

$ grep -i “pippo” /etc/passwd

Ricerca di più termini

Per effettuare la ricerca di più termini contemporaneamente è sufficiente indicarli separati da pipe.

$ grep “pippo|pluto|paperino” /etc/passwd

Ricerca in più file

Per effettuare la ricerca in più di un file è sufficiente specificare i file da utilizzare.

$ grep “pippo” file1 file2 file3

Ricerca in tutti i file di una directory

L’uso dell’asterisco permette di effettuare la ricerca in tutti i file contenuti nella directory attiva

$ grep “pippo” *

… o limitando la ricerca solo a certi tipi di file

$ grep “pippo” *.txt

Ricerca ricorsiva

Per effettuare la ricerca anche nelle sottodirectory si utilizza l’opzione -r

$ grep -r “pippo” /home/carlo/

Conteggio del numero di linee che rispondono alla ricerca

L’opzione -c permette di ottenere il numero di linee che contengono almeno una volta il termine cercato (non è il numero di occorrenze, ma il numero di linee).

$ grep -c “pippo” file

Output del contenuto con il numero di linea

L’opzione -n riporta il risultato della ricerca con il numero di linea.

$ grep -n “pippo” file

Risultato inverso della ricerca

L’opzione -v causa il risultato contrario: vengono quindi riportate le linee che NON corrispondono alla ricerca.

$ grep -v “pippo” file

Indicazione del solo nome del file

Quando una ricerca viene fatta su molti file, è possibile ottenere come risposta solo il nome dei file che danno risposta positiva alla ricerca.

$ grep -rl “pippo” /home/carlo/

Ricerca ricorsiva limitata solo a certi tipi di file

Nel caso della ricerca ricorsiva è possibile restringere l’operazione solo a determinati file che rispondono ad uno specifico modello.

$ grep -R –include=”*.html” “pippo” /var/www/html/

Lascia il tuo commento