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:

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.txtNota: 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.txtEcco 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.txtEcco l’output:

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.txtEcco 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.txtEcco 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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.