Existují 3 různé formy slavného příkazu grep. Níže uvedený seznam také rozlišuje mezi jejich případy použití.
- fgrep :Rychlé vyhledávání jednoduchých vzorů. Tento příkaz použijte k rychlému vyhledání vzorů bez jakýchkoli zástupných znaků, což je užitečné při hledání běžného slova.
- grep :Vyhledávání vzorů pomocí běžných regulárních výrazů.
- egrep :Vyhledávání vzorů pomocí výkonnějších rozšířených regulárních výrazů.
fgrep (fast grep) hledá v jednom nebo více souborech řádky, které odpovídají zadanému textovému řetězci. Výstupní stav je 0, pokud se některé řádky shodují, 1, pokud ne, a 2 pro chyby. fgrep je rychlejší než normální vyhledávání grep, ale méně flexibilní:dokáže najít pouze pevný text, nikoli regulární výrazy.
Příkaz fgrep je stejný jako grep, ale namísto přijímání regulárního výrazu přijímá seznam pevných řetězců oddělených novými řádky. Je to stejné jako grep -F. Pokud máte například soubor slovníku plný řetězců, jeden na řádek:
# cat my_dictionary_file aardvark aback abandon ...
tyto řetězce můžete pohodlně vyhledávat v sadě vstupních souborů:
# fgrep -f my_dictionary_file inputfile1 inputfile2
Normálně použijete volbu malých písmen -f, aby fgrep četl pevné řetězce ze souboru. Pevné řetězce na příkazovém řádku můžete také číst pomocí uvozovek, ale je to trochu složitější. Chcete-li vyhledat řetězce jedna, dva a tři v souboru, zadejte:
# fgrep 'one ### Note we are typing newline characters two three' myfile
fgrep je vhodný při hledání nealfanumerických znaků, jako jsou * a {, protože jsou brány doslovně, nikoli jako znaky regulárních výrazů.
Příklady příkazů fgrep
1. Interpretace PATTERN jako rozšířeného regulárního výrazu:
# fgrep --extended-regexp PATTERN # fgrep -E PATTERN
2. Chcete-li interpretovat PATTERN jako seznam pevných řetězců:
# fgrep -F PATTERN # fgrep --fixed-strings PATTERN
3. Interpretace PATTERN jako základního regulárního výrazu:
# fgrep -G PATTERN # fgrep --basic-regexp PATTERN
4. Interpretace PATTERN jako regulárního výrazu Perlu:
# fgrep -P PATTERN # fgrep --perl-regexp PATTERN
5. Použití PATTERN jako vzoru:
# fgrep -e PATTERN, # fgrep --regexp=PATTERN
6. Chcete-li získat vzory ze SOUBORU, jeden na řádek:
# fgrep -f FILE, --file=FILE
7. Ignorování rozlišení velkých a malých písmen ve VZORU i ve vstupních souborech:
# fgrep -i PATTERN # fgrep --ignore-case PATTERN
8. Chcete-li převrátit smysl shody, vybrat neodpovídající řádky:
# fgrep -v PATTERN # fgrep --invert-match PATTERN
9. Chcete-li vybrat pouze řádky obsahující shody, které tvoří celá slova:
# fgrep -w PATTERN # fgrep --word-regexp PATTERN
10. Chcete-li vybrat pouze ty shody, které přesně odpovídají celému řádku:
# fgrep -x PATTERN # fgrep --line-regexp PATTERN
11. Ignorování velikosti písmen:
# fgrep -y PATTERN
12. Potlačení normálního výstupu; místo toho vytiskněte počet odpovídajících řádků:
# fgrep -c PATTERN # fgrep --count PATTERN
13. Barevné zobrazení:
# fgrep --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á:
# fgrep -L PATTERN # fgrep --files-without-match PATTERN
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:
# fgrep -l PATTERN # fgrep --files-with-matches PATTERN
16. Do klidu; nezapisovat nic na standardní výstup Okamžitě opustit s nulovým stavem, pokud je nalezena jakákoliv shoda:
# fgrep -q PATTERN # fgrep --quiet PATTERN # fgrep --silent PATTERN
17. Chcete-li zastavit čtení souboru po NUM odpovídajících řádcích:
# fgrep -m NUM PATTERN # fgrep --max-count=NUM PATTERN
18. Chcete-li vytisknout pouze shodné (neprázdné) části shodného řádku:
# fgrep -o PATTERN # fgrep --only-matching PATTERN
19. Chcete-li potlačit chybové zprávy o neexistujících nebo nečitelných souborech:
# fgrep -s PATTERN # fgrep --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:
# fgrep -b PATTERN # fgrep --byte-offset PATTERN
21. Tisk názvu souboru pro každou shodu:
# fgrep -H PATTERN # fgrep --with-filename PATTERN
22. Chcete-li potlačit předponu názvů souborů na výstupu:
# fgrep -h PATTERN # fgrep --no-filename PATTERN
23. To Display vstup skutečně pocházející ze standardního vstupu jako vstup pocházející ze souboru LABEL:
# fgrep -cd PATTERN | fgrep --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:
# fgrep -n PATTERN # fgrep --line-number PATTERN
25. Chcete-li se ujistit, že první znak skutečného obsahu řádku leží na zarážce tabulátoru:
# fgrep -T PATTERN # fgrep --initial-tab PATTERN
26. Chcete-li hlásit odchylky bajtů ve stylu Unix:
# fgrep -u PATTERN # fgrep --unix-byte-offsets PATTERN
27. Pro Výstup nulového bajtu místo znaku, který normálně následuje za názvem souboru:
# fgrep -Z PATTERN # fgrep --null PATTERN
28. Chcete-li po odpovídajících řádcích vytisknout NUM řádků kontextu na konci:
# fgrep -A NUM PATTERN # fgrep --after-context=NUM PATTERN
29. Chcete-li vytisknout NUM řádků úvodního kontextu před odpovídajícími řádky:
# fgrep -B NUM PATTERN # fgrep --before-context=NUM PATTERN
30. Chcete-li vytisknout NUM řádků výstupního kontextu:
# fgrep -C NUM PATTERN # fgrep --context=NUM PATTERN
31. Chcete-li zpracovat binární soubor, jako by to byl text:
# fgrep -a PATTERN /tmp/bin # fgrep -text PATTERN /tmp/bin
32. Předpokládejme, že soubor je typu TYPE:
# fgrep --binary-files=TYPE PATTERN
33. Pro Pokud je vstupním souborem zařízení, FIFO nebo zásuvka, zpracujte jej pomocí AKCE:
# fgrep -D ACTION PATTERN # fgrep --devices=ACTION PATTERN
34. Komu Pokud je vstupním souborem adresář, použijte ke zpracování AKCI:
# fgrep -d ACTION PATTERN # fgrep --directories=ACTION PATTERN
35. Chcete-li přeskočit soubory, jejichž základní název odpovídá GLOB:
# fgrep --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:
# fgrep --exclude-from=FILE PATTERN
37. Chcete-li vyloučit adresáře odpovídající vzoru DIR z rekurzivního vyhledávání:
# fgrep --exclude-dir=DIR PATTERN
38. Chcete-li zpracovat binární soubor, jako by neobsahoval odpovídající data:
# fgrep -I PATTERN
39. Chcete-li hledat pouze soubory, jejichž základní název odpovídá GLOB:
# fgrep --include=GLOB
40. Chcete-li číst všechny soubory v každém adresáři, rekurzivně:
# fgrep -r PATTERN # fgrep -R PATTERN
41. Použití ukládání do vyrovnávací paměti na výstupu:
# fgrep --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í:
# fgrep --mmap PATTERN
43. Chcete-li považovat soubor(y) za binární:
# fgrep -U /tmp/file PATTERN # fgrep --binary /tmp/file PATTERN
44. Chcete-li zacházet se vstupem jako se sadou řádků:
# fgrep -z PATTERN # fgrep --null-data PATTERN
45. Zobrazení nápovědy:
# fgrep -h
46. Chcete-li vytisknout číslo verze grep:
# fgrep -V