Image

La differenza tra grep, egrep e fgrep

Come accelerare le nostre ricerche di archivi di testo in linux

Oggi mostreremo la differenza tra i comandi di filtraggio di testo grep, egrep e fgrep di forma molto semplice. Questo è un requisito per la certificazione LPIC-1.

Che cosa è "grep"

Grep è una utility per effettuare un filtro durante una ricerca. Per esempio: durante questa ricerca, voglio ottenere solamente gli archivi con l'estensione .doc.

Che cosa è "egrep"

Egrep è un collegamento al comando grep -E.

L'opzione -E permette l'uso di espressioni regolari per il filtraggio di testo. Per esempio: +, |, () etc.

Che cosa è "fgrep"

Fgrep è un collegamento al comando grep -F.

Di standard, grep non tratta metacaratteri come filtri, per esemplo, il punto ".".

Fgrep abilita questa opzione di filtraggio.

Confuso? Andiamo a fare alcuni esempi per spiegare meglio i tre comandi.

Creeremo un archivio di testo casuale e incolliamo il seguente contenuto:

Lorem ipsum
dolor sit amet,
consectetur
adipiscing
elit, sed
do eiusmod
tempor incididunt
ut labore et dolore
magna aliqua.
Ut enim ad
minim veniam,
quis nostrud
exercitation ullamco
laboris nisi ut
aliquip ex ea
commodo consequat.
 

Iniziamo i nostri test:

$ grep "Lorem" test.txt

 

Grep ricerca per parola-chiave. E' se volessimo filtrare per più di una parola?
Dovremmo usare le regex (espressioni regolari) ed è proprio quì entra in campo egrep.

$ egrep "Lorem|mauris" test.txt

 

In questo caso, stiamo chiedendo di ricercare le parole Lorem o magna.

E se volessimo filtrare per tutte le parole che hanno un metacarattere?
Come il grep capisce come  una espressione regolare, dobbiamo usare fgrep per questo.

Facciamo il test con grep il filtro per ".".

$ grep "." test.txt

e adesso facciamo un test con fgrep:

$ fgrep "." test.txt

Adesso siamo riusciti a filtrare per il metacarattere ".".

Bene, siamo riusciti a spiegare di forma semplice le differenze tra i comandi grep, egrep e fgrep.
Buon lavoro ;-)