Il comando egrep è una derivazione di grep, che consente di specificare le espressioni regolari estese POSIX, che contengono più caratteri per specificare il modello di corrispondenza.
egrep cerca in uno o più file le righe che corrispondono a un'espressione regolare estesa regexp. egrep non supporta le espressioni regolari \(,\), \n, \<, \>, \{ o \}, ma supporta le altre espressioni, così come il set esteso +, ?, |, e ( ). Ricorda di racchiudere questi caratteri tra virgolette. Lo stato di uscita è 0 se alcune righe corrispondono, 1 se nessuna corrispondenza e 2 per errori.
Sintassi:
# egrep [options] [regexp] [files]
Cerca le occorrenze di Victor o Victoria nel file:
# egrep 'Victor(ia)*' fileegrep '(Victor|Victoria)' file
Trova e stampa stringhe come old.doc1 o new.doc2 nei file e includi i loro numeri di riga:
# egrep -n '(old|new)\.doc?' files
Esempi di comando egrep
1. Per interpretare PATTERN come un'espressione regolare estesa:
# egrep --extended-regexp PATTERN # egrep -E PATTERN
2. Per interpretare PATTERN come un elenco di stringhe fisse:
# egrep -F PATTERN # egrep --fixed-strings PATTERN
3. Per interpretare PATTERN come un'espressione regolare di base:
# egrep -G PATTERN # egrep --basic-regexp PATTERN
4. Per interpretare PATTERN come un'espressione regolare Perl:
# egrep -P PATTERN # egrep --perl-regexp PATTERN
5. Per utilizzare PATTERN come modello:
# egrep -e PATTERN, # egrep --regexp=PATTERN
6. Per ottenere modelli da FILE, uno per riga:
# egrep -f FILE, --file=FILE
7. Per ignorare le distinzioni tra maiuscole e minuscole sia nel PATTERN che nei file di input:
# egrep -i PATTERN # egrep --ignore-case PATTERN
8. Per invertire il senso di corrispondenza, per selezionare le righe non corrispondenti:
# egrep -v PATTERN # egrep --invert-match PATTERN
9. Per selezionare solo quelle righe contenenti corrispondenze che formano parole intere:
# egrep -w PATTERN # egrep --word-regexp PATTERN
10. Per selezionare solo quelle corrispondenze che corrispondono esattamente all'intera riga:
# egrep -x PATTERN # egrep --line-regexp PATTERN
11. Per ignorare il caso:
# egrep -y PATTERN
12. Per sopprimere l'uscita normale; stampa invece un conteggio delle righe corrispondenti:
# egrep -c PATTERN # egrep --count PATTERN
13. Per visualizzare a colori:
# egrep --color PATTERN
14. Per sopprimere l'uscita normale; stampa invece il nome di ogni file di input, da out non sarà previsto:
# egrep -L # egrep --files-without-match
15. Per sopprimere l'uscita normale; stampa invece il nome di ogni file di input da cui sono stati stampati gli output:
# egrep -l # egrep --files-with-matches
16. Silenzio; non scrivere nulla sullo standard output Esci immediatamente con stato zero se viene trovata una corrispondenza:
# egrep -q # egrep --quiet # egrep --silent
17. Per interrompere la lettura di un file dopo NUM righe corrispondenti:
# egrep -m NUM # egrep --max-count=NUM
18. Per stampare solo le parti corrispondenti (non vuote) di una riga corrispondente:
# egrep -o PATTERN # egrep --only-matching PATTERN
19. Per eliminare i messaggi di errore relativi a file inesistenti o illeggibili:
# egrep -s PATTERN # egrep --no-messages PATTERN
20. Per stampare l'offset di byte in base 0 all'interno del file di input prima di ogni riga di output:
# egrep -b PATTERN # egrep --byte-offset PATTERN
21. Per stampare il nome del file per ogni corrispondenza:
# egrep -H PATTERN # egrep --with-filename PATTERN
22. Per eliminare il prefisso dei nomi di file sull'output:
# egrep -h PATTERN # egrep --no-filename PATTERN
23. Per visualizzare l'input effettivamente proveniente dallo standard input come input proveniente dal file LABEL:
# egrep -cd PATTERN | egrep --label=mysearch -H PATTERN
24. Per anteporre a ciascuna riga di output il numero di riga in base 1 all'interno del relativo file di input:
# egrep -n PATTERN # egrep --line-number PATTERN
25. Per assicurarsi che il primo carattere del contenuto effettivo della riga si trovi su un punto di tabulazione:
# egrep -T PATTERN # egrep --initial-tab PATTERN
26. Per segnalare gli offset dei byte in stile Unix:
# egrep -u PATTERN # egrep --unix-byte-offsets PATTERN
27. Per emettere uno zero byte invece del carattere che normalmente segue un nome di file:
# egrep -Z PATTERN # egrep --null PATTERN
28. Per stampare NUM righe di contesto finale dopo le righe corrispondenti:
# egrep -A NUM PATTERN # egrep --after-context=NUM PATTERN
29. Per stampare NUM righe di contesto iniziale prima delle righe corrispondenti:
# egrep -B NUM PATTERN # egrep --before-context=NUM PATTERN
30. Per stampare NUM righe di contesto di output:
# egrep -C NUM PATTERN # egrep --context=NUM PATTERN
31. Per elaborare un file binario come se fosse testo:
# egrep -a PATTERN /tmp/bin # egrep -text PATTERN /tmp/bin
32. Per assumere che il file sia di tipo TYPE:
# egrep --binary-files=TYPE PATTERN
33. Se un file di input è un dispositivo, FIFO o socket, usa ACTION per elaborarlo:
# egrep -D ACTION PATTERN # egrep --devices=ACTION PATTERN
34. Se un file di input è una directory, utilizzare ACTION per elaborarlo:
# egrep -d ACTION PATTERN # egrep --directories=ACTION PATTERN
35. Per saltare i file il cui nome di base corrisponde a GLOB:
# egrep --exclude=GLOB PATTERN
36. Per ignorare i file il cui nome di base corrisponde a uno qualsiasi dei glob di nomi file letti da FILE:
# egrep --exclude-from=FILE PATTERN
37. Per escludere le directory che corrispondono al pattern DIR dalle ricerche ricorsive:
# egrep --exclude-dir=DIR PATTERN
38. Per elaborare un file binario come se non contenesse dati corrispondenti:
# egrep -I PATTERN
39. Per cercare solo i file il cui nome di base corrisponde a GLOB:
# egrep --include=GLOB PATTERN
40. Per leggere tutti i file in ogni directory, ricorsivamente:
# egrep -r PATTERN # egrep -R PATTERN
41. Per utilizzare il buffer di riga sull'output:
# egrep --line-buffered PATTERN
42. Se possibile, usa la chiamata di sistema mmap per leggere l'input, invece della lettura predefinita:
# egrep --mmap PATTERN
43. Per trattare i file come binari:
# egrep -U /tmp/file PATTERN # egrep --binary /tmp/file PATTERN
44. Per trattare l'input come un insieme di righe:
# egrep -z PATTERN # egrep --null-data PATTERN
45. Per visualizzare la guida:
# egrep -h
46. Per stampare il numero di versione di grep:
# egrep -V