Comandi Linux · 3 min read · Sep 14, 2025

Tutorial sul comando fgrep di Linux per principianti (con esempi)

Mentre grep è un comando Linux ben noto (ne abbiamo già trattato in dettaglio), sapevi che esistono due varianti diverse di questo strumento? Sì, queste sono egrep e fgrep. In questo tutorial, discuteremo quest’ultimo (fgrep) utilizzando esempi facili da comprendere. Ma prima di farlo, vale la pena menzionare che tutti gli esempi e le istruzioni menzionati in questo tutorial sono stati testati su Ubuntu 16.04LTS.

Comando fgrep di Linux

Se dai un’occhiata alla documentazione ufficiale, la pagina man per il comando grep dice che fgrep non è altro che grep -F. Dice anche che varianti come fgrep ed egrep sono fornite solo per compatibilità retroattiva. Toccheremo questi dettagli più avanti in questo tutorial.

Nel frattempo, ecco la sintassi di fgrep (che è la stessa di grep):

grep [OPTIONS] PATTERN [FILE...]

Ecco come la pagina man del comando grep spiega lo strumento:

grep cerca nei FILE di input nominati righe contenenti una corrispondenza con il PATTERN dato. Se non vengono specificati file, o se viene dato il file “-”, grep cerca nell'input standard. Per impostazione predefinita, grep stampa le righe corrispondenti.

I seguenti esempi in stile Q&A dovrebbero darti un’idea migliore su come funziona fgrep.

Q1. In cosa fgrep è diverso da grep ed egrep?

Il comando fgrep si differenzia sia da grep che da egrep nel senso che interpreta PATTERN come un elenco di stringhe fisse (anziché espressioni regolari), separate da nuove righe.

Poiché si dice che sia lo stesso di grep -F, ecco come un esperto ha spiegato l’opzione -F di grep su StackExchange:

L'opzione `-F` cambia grep in una modalità diversa in cui accetta un pattern da abbinare, ma poi divide quel pattern in una stringa di ricerca per riga e fa una ricerca OR su qualsiasi delle stringhe senza fare alcun abbinamento di pattern speciale.

Q2. Come usare fgrep?

Per comprendere l’uso di fgrep, prendiamo prima un esempio di base. Supponiamo che ci sia un file (file1) che contiene i seguenti contenuti:

E c’è un altro file (words.txt) che contiene un elenco di parole che vogliamo cercare in file1.

Quindi ecco come puoi usare fgrep per eseguire questa ricerca:

fgrep -f words.txt file1

Quindi puoi vedere che le parole trovate sono state evidenziate in rosso. Ora alcuni di voi potrebbero sostenere che anche grep ed egrep farebbero lo stesso in questo caso, quindi in cosa fgrep è diverso?

Innanzitutto, sì, hai ragione. I comandi grep ed egrep produrrebbero anche un output simile:

Ma la differenza sarà chiara nel caso in cui file1 e words.txt contengano i seguenti contenuti (osserva i caratteri speciali all’interno delle parole):

Qui, egrep e grep non riusciranno a trovare tutte le parole:

Ma fgrep funzionerà come previsto:

Q3. Non c’è davvero differenza tra fgrep e grep?

Secondo la documentazione ufficiale, non c’è alcuna differenza tra fgrep e il comando grep -F. Tuttavia, si riporta che c’è una differenza principale tra i due strumenti: l’algoritmo di corrispondenza delle stringhe che usano. Mentre fgrep utilizza l’algoritmo di Aho-Corasick, grep utilizza una versione modificata di Commentz-Walter.

“Ciò significa che grep ha una complessità nel caso peggiore di O(mn) mentre fgrep è al massimo O(m+n),” dice un esperto nei forum di StackExchange.

Conclusione

Come evidente, il comando fgrep non è difficile da comprendere e utilizzare. Per quanto riguarda la differenza tra fgrep e grep -F, mentre abbiamo già notato i punti nella Q3, riteniamo che questa questione non dovrebbe preoccupare una larga sezione degli utenti. Nel caso tu abbia dei dubbi, o abbia una domanda relativa a fgrep, condividila con noi lasciando un commento qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.