Quando usare egrep invece di grep?


8

Ora mi sto preparando per una valutazione del terminale Linux, ho provato a Google e ho scoperto che la maggior parte delle risorse si riferisce al "grep" di base piuttosto che al più potente "egrep" - beh, questo è almeno quello che il professore ha detto durante la lezione.

Lavoro sempre con piccoli campioni, quindi l'ottimizzazione delle prestazioni è troppo lontana.

Quindi sostanzialmente vorrei sapere ci sono delle aree in cui devo passare a egrep per farlo meglio? È sicuro lavorare con "grep" di base come per ora? ci saranno rischi potenziali?

Mi dispiace per la mia limitata conoscenza dei comandi della shell Linux, la pagina man mi sembra un labirinto e onestamente non ho dedicato molto tempo a comprendere tutte le funzionalità fornite da entrambi i comandi.

Risposte:


10

egrep = grep -E

Da http://www.opengroup.org/onlinepubs/007908799/xcu/grep.html

"Abbina usando espressioni regolari estese. Tratta ogni modello specificato come ERE, come descritto nella specifica XBD, Espressioni regolari estese. Se un intero modello ERE corrisponde a una linea di input, la linea verrà abbinata. Un ERE null corrisponde a ogni riga."

Quindi, con egrep puoi usare +, ?, | and ().


@omfgroflmao: è questa la differenza? bene, ora mi sento a mio agio nel concentrarmi solo sui tutorial "grep" senza preoccuparmi del comando "egrep" :) Grazie per il tuo consiglio!

1
Sia che tu lo chiami egrepo grep -E, le espressioni regolari estese in genere rendono più brevi schemi complessi e quindi più facili da leggere rimuovendo molto ''. Non si tratta di prestazioni, ma è un modo migliore in un certo senso.
Cascabel,

5

egrep è deprecato. Usa grep -E. Nota che greptrova schemi di corde per te. Se vuoi fare qualcosa per le tue stringhe dopo averle trovate, devi eseguire il pipe a uno strumento di elaborazione delle stringhe come awk(o la shell). Lo strumento che dovresti anche cercare è awk, in quanto awktrova le stringhe per te e piace molto grepe fa l'elaborazione per te se ne hai bisogno. Ha tutto ciò che grep / sed / etc fa in un unico strumento utile.


@ ghostdog74: ahhh, quindi si consiglia di non utilizzare egrep ... Ho pensato che fosse il sostituto di grep ... Grazie per il tuo consiglio!

2
Per la cronaca, su molte macchine, inclusa la mia, egrep è un collegamento a grep. Cioè, sono in realtà lo stesso comando esatto, ma si comportano in modo diverso a seconda di come li chiamate.
MJB
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.