Qual è la differenza tra Grep, Eep e Fgrep in Linux?

Uno dei rinomati strumenti di ricerca su sistemi Unix-like che possono essere utilizzati per cercare qualsiasi cosa che si tratti di un file, o una linea o più righe nel file è grep utility. È molto vasto in funzionalità che può essere attribuito al gran numero di opzioni che supporta come: ricerca usando string pattern, o reg-ex pattern o reg-ex basato su perl ecc.

Differenza Tra grep, egrep e fgrep
Differenza Tra grep, egrep e fgrep in Linux

a Causa di diverse funzionalità, ha molte varianti tra cui grep, egrep (Extended GREP), fgrep Fissa (GREP), pgrep (Processo GREP) rgrep (GREP Ricorsivo) etc. Ma queste varianti hanno piccole differenze rispetto all’originale grep che le ha rese popolari e utilizzate da vari programmatori Linux per compiti specifici.

La cosa principale che rimane da indagare è quali sono le differenze tra le tre varianti principali, cioè ‘grep’, ‘eep’ e ‘fgrep’ di grep che fa sì che gli utenti Linux scelgano l’una o l’altra versione secondo il requisito.

Alcuni Meta-caratteri speciali di grep

  1. + – Equivalenti a una o più occorrenze del carattere precedente.
  2. ? – Questo denota quasi 1 ripetizione del carattere precedente. Come: a? Corrisponderebbe a ‘a’ o ‘aa’.
  3. ( – Inizio dell’espressione di alternanza.
  4. ) – Fine dell’espressione di alternanza.
  5. | – Corrisponde a una delle espressioni separate da'|'. Come: "(a|b)cde” corrisponderebbe a ‘abcde’ o ‘bbcde’.
  6. { – Questo meta-carattere indica l’inizio dello specificatore di intervallo. Come: "a{2}” corrisponde a” aa ” nel file cioè a 2 volte.
  7. } – Questo meta-carattere indica l’identificatore di fine intervallo.

Differenze tra grep ,greep e fgrep

Alcune differenze principali tra grep, eep e fgrep possono essere evidenziate come segue. Per questo insieme di esempi stiamo assumendo il file su cui viene eseguita l’operazione:

Linux Comando grep
Linux Comando grep

Comando Grep

grep o Globale Espressione Regolare di Stampa è il principale programma di ricerca su Unix come sistemi di ricerca per qualsiasi tipo di stringa su qualsiasi file o l’elenco dei file o anche di uscita di qualsiasi comando.

Lettura suggerita: 12 Esempi pratici di comando grep Linux

Utilizza espressioni regolari di base oltre alle normali stringhe come modello di ricerca. Nelle espressioni regolari di base (BRE), i meta-caratteri come: '{','}''(',')''|''+''?' perdono il loro significato e sono trattati come dei normali caratteri della stringa e la necessità di essere scappato, se vogliono essere trattati come caratteri speciali.

Lettura consigliata: 11 Advance ‘Grep’ Comandi su classi di caratteri ed espressioni Parentesi

Inoltre, grep utilizza l’algoritmo Boyer-Moore per la ricerca veloce qualsiasi stringa o espressione regolare.

$ grep -C 0 '(f|g)ile' check_file$ grep -C 0 '\(f\|g\)ile' check_file
Linux grep Command Example
Linux grep Command Example

Like here, when the command is run without escaping '(' ')' and '|' then it searched for the complete string i.e. "(f|g)ile” in the file. Ma quando i caratteri speciali sono stati sfuggiti, invece di trattarli come parte della stringa, grep li ha trattati come meta-caratteri e ha cercato le parole "file” o "gile” nel file.

Commandep Comando

Eep o grep-E è un’altra versione di grep o il grep esteso. Questa versione di grep è efficiente e veloce quando si tratta di cercare un modello di espressione regolare in quanto tratta i meta-caratteri così come sono e non li sostituisce come stringhe come in grep, e quindi sei liberato dall’onere di sfuggirli come in grep. Usa ERE o il set di espressioni regolari estese.

In caso digreep, anche se non si sfuggono ai meta-caratteri, li tratterebbe come caratteri speciali e li sostituirà per il loro significato speciale invece di trattarli come parte di string.

$ egrep -C 0 '(f|g)ile' check_file$ egrep -C 0 '\(f\|g\)ile' check_file
Linux egrep Esempi di Comandi
Linux egrep Esempi di Comandi

Come qui, egrep cercato "file” stringa, quando i meta-caratteri non erano sfuggiti, come sarebbe dire il significato di questi personaggi. Ma, quando questi caratteri sono stati sfuggiti, eep li ha trattati come parte di string e ha cercato la stringa completa "(f|g)ile” nel file.

Comando fgrep

Fgrep o il grep fisso o grep-F è ancora un’altra versione di grep che è veloce nella ricerca quando si tratta di cercare l’intera stringa invece di espressione regolare in quanto non riconosce le espressioni regolari, né alcun meta-caratteri. Per cercare qualsiasi stringa diretta, questa è la versione di grep che dovrebbe essere selezionata.

Fgrep cerca una stringa completa e non riconosce nemmeno i caratteri speciali come parte dell’espressione regolare anche se è sfuggito o meno.

$ fgrep -C 0 '(f|g)ile' check_file$ fgrep -C 0 '\(f\|g\)ile' check_file
Linux fgrep Esempi di Comandi
Linux fgrep Esempi di Comandi

Come, quando meta-caratteri non erano sfuggiti, fgrep cercato la stringa completa "(f|g)ile” nel file, e quando la meta-caratteri erano sfuggiti, quindi il fgrep comando cercato "\(f\|g\)ile” tutti i personaggi, come è nel file.

Abbiamo già trattato alcuni esempi pratici di comando grep che puoi leggere qui, se vuoi ottenere di più dal comando grep in Linux.

Impara 12 esempi pratici di comando Linux grep

Conclusione

Sopra evidenziate sono le differenze tra ‘grep’, ‘eep’ e ‘fgrep’. A parte la differenza nel set di espressioni regolari utilizzate e la velocità di esecuzione, i parametri della riga di comando rest rimangono gli stessi per tutte e tre le versioni di grep e anche al posto di “eep” o “fgrep”, “grep-E” o “grep-F” sono raccomandati per essere usati.

Posted on

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.