Příkaz egrep je odnoží grep, která vám umožňuje specifikovat rozšířené regulární výrazy POSIX, které obsahují více znaků pro určení shodného vzoru.
egrep hledá v jednom nebo více souborech řádky, které odpovídají regulárnímu výrazu rozšířeného regulárního výrazu. egrep nepodporuje regulární výrazy \(,\), \n, \<, \>, \{ nebo \}, ale podporuje ostatní výrazy, stejně jako rozšířenou množinu +, ?, |, a ( ). Nezapomeňte tyto znaky uzavřít do uvozovek. Výstupní stav je 0, pokud se některé řádky shodují, 1, pokud žádný neodpovídá, a 2 pro chyby.
Syntaxe:
# egrep [options] [regexp] [files]
Vyhledejte výskyty Victor nebo Victoria v souboru:
# egrep 'Victor(ia)*' fileegrep '(Victor|Victoria)' file
Najděte a vytiskněte v souborech řetězce jako old.doc1 nebo new.doc2 a zahrňte jejich čísla řádků:
# egrep -n '(old|new)\.doc?' files
Příklady příkazů egrep
1. Interpretace PATTERN jako rozšířeného regulárního výrazu:
# egrep --extended-regexp PATTERN # egrep -E PATTERN
2. Chcete-li interpretovat PATTERN jako seznam pevných řetězců:
# egrep -F PATTERN # egrep --fixed-strings PATTERN
3. Interpretace PATTERN jako základního regulárního výrazu:
# egrep -G PATTERN # egrep --basic-regexp PATTERN
4. Interpretace PATTERN jako regulárního výrazu Perlu:
# egrep -P PATTERN # egrep --perl-regexp PATTERN
5. Použití PATTERN jako vzoru:
# egrep -e PATTERN, # egrep --regexp=PATTERN
6. Chcete-li získat vzory ze SOUBORU, jeden na řádek:
# egrep -f FILE, --file=FILE
7. Ignorování rozlišení velkých a malých písmen ve VZORU i ve vstupních souborech:
# egrep -i PATTERN # egrep --ignore-case PATTERN
8. Chcete-li převrátit smysl shody, vybrat neodpovídající řádky:
# egrep -v PATTERN # egrep --invert-match PATTERN
9. Chcete-li vybrat pouze řádky obsahující shody, které tvoří celá slova:
# egrep -w PATTERN # egrep --word-regexp PATTERN
10. Chcete-li vybrat pouze ty shody, které přesně odpovídají celému řádku:
# egrep -x PATTERN # egrep --line-regexp PATTERN
11. Ignorování velikosti písmen:
# egrep -y PATTERN
12. Potlačení normálního výstupu; místo toho vytiskněte počet odpovídajících řádků:
# egrep -c PATTERN # egrep --count PATTERN
13. Barevné zobrazení:
# egrep --color PATTERN
14. Potlačení normálního výstupu; místo toho vytiskněte název každého vstupního souboru, ze kterého se neočekává:
# egrep -L # egrep --files-without-match
15. Potlačení normálního výstupu; místo toho vypište název každého vstupního souboru, ze kterého byl vytištěn výstup:
# egrep -l # egrep --files-with-matches
16. Do klidu; nezapisovat nic na standardní výstup Okamžitě opustit s nulovým stavem, pokud je nalezena jakákoliv shoda:
# egrep -q # egrep --quiet # egrep --silent
17. Chcete-li zastavit čtení souboru po NUM odpovídajících řádcích:
# egrep -m NUM # egrep --max-count=NUM
18. Chcete-li vytisknout pouze shodné (neprázdné) části shodného řádku:
# egrep -o PATTERN # egrep --only-matching PATTERN
19. Chcete-li potlačit chybové zprávy o neexistujících nebo nečitelných souborech:
# egrep -s PATTERN # egrep --no-messages PATTERN
20. Tisk bajtového offsetu založeného na 0 ve vstupním souboru před každým řádkem výstupu:
# egrep -b PATTERN # egrep --byte-offset PATTERN
21. Tisk názvu souboru pro každou shodu:
# egrep -H PATTERN # egrep --with-filename PATTERN
22. Chcete-li potlačit předponu názvů souborů na výstupu:
# egrep -h PATTERN # egrep --no-filename PATTERN
23. To Display vstup skutečně pocházející ze standardního vstupu jako vstup pocházející ze souboru LABEL:
# egrep -cd PATTERN | egrep --label=mysearch -H PATTERN
24. Chcete-li předřadit každému řádku výstupu číslo řádku založeného na 1 v jeho vstupním souboru:
# egrep -n PATTERN # egrep --line-number PATTERN
25. Chcete-li se ujistit, že první znak skutečného obsahu řádku leží na zarážce tabulátoru:
# egrep -T PATTERN # egrep --initial-tab PATTERN
26. Chcete-li hlásit odchylky bajtů ve stylu Unix:
# egrep -u PATTERN # egrep --unix-byte-offsets PATTERN
27. Pro Výstup nulového bajtu místo znaku, který normálně následuje za názvem souboru:
# egrep -Z PATTERN # egrep --null PATTERN
28. Chcete-li po odpovídajících řádcích vytisknout NUM řádků kontextu na konci:
# egrep -A NUM PATTERN # egrep --after-context=NUM PATTERN
29. Chcete-li vytisknout NUM řádků úvodního kontextu před odpovídajícími řádky:
# egrep -B NUM PATTERN # egrep --before-context=NUM PATTERN
30. Chcete-li vytisknout NUM řádků výstupního kontextu:
# egrep -C NUM PATTERN # egrep --context=NUM PATTERN
31. Chcete-li zpracovat binární soubor, jako by to byl text:
# egrep -a PATTERN /tmp/bin # egrep -text PATTERN /tmp/bin
32. Předpokládejme, že soubor je typu TYPE:
# egrep --binary-files=TYPE PATTERN
33. Pro Pokud je vstupním souborem zařízení, FIFO nebo zásuvka, zpracujte jej pomocí AKCE:
# egrep -D ACTION PATTERN # egrep --devices=ACTION PATTERN
34. Komu Pokud je vstupním souborem adresář, použijte ke zpracování AKCI:
# egrep -d ACTION PATTERN # egrep --directories=ACTION PATTERN
35. Chcete-li přeskočit soubory, jejichž základní název odpovídá GLOB:
# egrep --exclude=GLOB PATTERN
36. Chcete-li přeskočit soubory, jejichž základní název se shoduje s kterýmkoli z globů názvů souborů načtených z FILE:
# egrep --exclude-from=FILE PATTERN
37. Chcete-li vyloučit adresáře odpovídající vzoru DIR z rekurzivního vyhledávání:
# egrep --exclude-dir=DIR PATTERN
38. Chcete-li zpracovat binární soubor, jako by neobsahoval odpovídající data:
# egrep -I PATTERN
39. Chcete-li hledat pouze soubory, jejichž základní název odpovídá GLOB:
# egrep --include=GLOB PATTERN
40. Chcete-li číst všechny soubory v každém adresáři, rekurzivně:
# egrep -r PATTERN # egrep -R PATTERN
41. Použití ukládání do vyrovnávací paměti na výstupu:
# egrep --line-buffered PATTERN
42. Pokud je to možné, použijte ke čtení vstupu systémové volání mmap namísto výchozího čtení:
# egrep --mmap PATTERN
43. Chcete-li považovat soubor(y) za binární:
# egrep -U /tmp/file PATTERN # egrep --binary /tmp/file PATTERN
44. Chcete-li zacházet se vstupem jako se sadou řádků:
# egrep -z PATTERN # egrep --null-data PATTERN
45. Zobrazení nápovědy:
# egrep -h
46. Chcete-li vytisknout číslo verze grep:
# egrep -V