Grep tutorial · 3 min read · Sep 18, 2025

Come eseguire una ricerca per pattern nei file utilizzando Grep

Nel nostro primo articolo sul comando grep, abbiamo trattato diverse funzionalità che lo strumento offre, inclusi come utilizzarlo per cercare solo parole, cercare due parole, contare le righe contenenti la parola corrispondente e altro ancora. Oltre a queste, lo strumento fornisce alcune altre funzionalità facili da comprendere e utili. In questo articolo, discuteremo alcune di queste.

Si prega di notare che tutti gli esempi menzionati in questo tutorial sono stati testati su Ubuntu 14.04LTS. Inoltre, utilizzeremo il seguente file (test_file1.txt) per tutti i nostri esempi relativi a grep in questo tutorial:

file di test grep

Ricerca senza distinzione tra maiuscole e minuscole con Grep

Per impostazione predefinita, grep è sensibile alle maiuscole, il che significa, ad esempio, che tratterà ‘ABC’ e ‘abc’ separatamente. Tuttavia, se desideri che la tua ricerca sia insensibile alle maiuscole, puoi utilizzare l’opzione della riga di comando -i.

grep -i [stringa-da-ricercare] [nome-file]

Ad esempio:

grep -i "linux" test_file1.txt

Nota: Non solo il pattern (ad esempio, ‘linux’ nell’esempio sopra), la pagina man di grep afferma che l’opzione -i assicura anche che la sensibilità alle maiuscole per i file di input venga ignorata. Ecco l’estratto:

 -i, --ignore-case  
 Ignora le distinzioni di maiuscole sia nel PATTERN che nei file di input. (-i è specificato da POSIX.)

Tuttavia, non siamo riusciti a riprodurre il comportamento relativo ai file di input dalla nostra parte.

Visualizza alcune righe non corrispondenti con la riga contenente la stringa corrispondente in Grep

Utilizzando lo strumento, puoi anche visualizzare un numero specificato di righe dopo, prima o intorno alla riga contenente la stringa corrispondente.

Usa l’opzione della riga di comando -A per stampare ‘N’ righe dopo la riga corrispondente.

$ grep -A N [stringa-da-ricercare] [nome-file]

Ad esempio:

$ grep -A 2 "linux" test_file1.txt

Ecco l’output del comando sopra

Allo stesso modo, l’opzione della riga di comando -B viene utilizzata per visualizzare le righe prima della riga corrispondente.

$ grep -B N [stringa-da-ricercare] [nome-file]

Ad esempio:

$ grep -B 2 "linux" test_file1.txt

Ecco l’output:

output grep

Infine, per stampare le righe intorno alla riga corrispondente, usa l’opzione della riga di comando -C.

$ grep -C N [stringa-da-ricercare] [nome-file]

Ad esempio:

$ grep -C 2 "linux" test_file1.txt

Ecco l’output catturato:

Stampa solo le stringhe corrispondenti in Grep

È anche possibile stampare solo la stringa corrispondente sull’output standard (anziché le righe complete che vengono visualizzate per impostazione predefinita). Questa funzionalità può essere accessibile utilizzando l’opzione della riga di comando -o.

$ grep -o [stringa-da-ricercare] [nome-file]

Ad esempio, se il requisito è cercare una stringa “linux” in un file (ma non devono essere stampate righe complete), utilizzeremo il seguente comando.

$ grep -o "linux" [nome-file]

Possiamo anche utilizzare caratteri jolly come e . per grep più di una stringa. Ad esempio, se vogliamo grep un gruppo di parole che inizia con “how” e termina con “linux”, possiamo utilizzare il seguente comando.

$ grep -o "how.*linux" [nome-file]

Visualizza posizione in Grep

Il comando grep consente anche di visualizzare l’offset in byte della riga in cui si verifica la stringa corrispondente. Questa funzionalità può essere accessibile utilizzando l’opzione della riga di comando -b. Ma per un uso migliore di questa opzione, puoi usarla con l’opzione della riga di comando -o, che mostrerà la posizione esatta della stringa corrispondente.

$ grep -o -b [stringa-da-ricercare] [nome-file]

Ad esempio:

$ grep -o -b "for" test_file1.txt

Ecco l’output:

Conclusione

Potresti non aver bisogno di tutte queste opzioni ogni giorno, ma dovresti almeno conoscerle poiché non si sa mai quando potrebbero tornare utili. Grep diventa ancora più potente quando viene utilizzato con espressioni regolari, ma lasceremo questo argomento per un altro giorno.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.