GNU/Linux >> Znalost Linux >  >> Linux

grep:příkaz nenalezen

Příkaz grep je ve své nejzákladnější podobě vyhledávacím nástrojem. Na rozdíl od funkce find or locate se neomezuje na hledání názvů souborů; nejčastěji se používá k hledání určitého řetězce textu v obsahu souboru. Jako výstup grep zobrazí každý celý řádek souboru, ve kterém byl nalezen váš vyhledávací vzor. Tímto způsobem můžete použít grep ke zpracování textového souboru i ke čtení obsahu, který se vás nejvíce týká. Můžete například chtít auditovat události přihlášení uživatele pohledem do protokolu přístupu. Místo čtení celého protokolu nebo procházení hledaného výrazu v textovém editoru můžete jednoduše vytisknout všechny relevantní řádky na obrazovku pomocí příkazu grep.

Syntaxe

Syntaxe příkazu grep je:

# grep [options] {search pattern} {file names}

Použití grep k nalezení souborů

Kromě prohledávání obsahu souborů můžete použít grep k prohledání adresáře za účelem nalezení určitého souboru. ls -l | Příkaz grep audit vrací dlouhý seznam všech souborů v aktuálním adresáři, jejichž název obsahuje „audit“.

Pokud chcete obrátit vyhledávání (výstupní řádky, které neodpovídají vzoru), použijte parametr -v:

$ grep -v t file1
one
four
five
$

Pokud potřebujete najít čísla řádků, kde se nacházejí odpovídající vzory, použijte parametr -n:

$ grep -n t file1
2:two
3:three
$

Pokud potřebujete pouze zjistit, kolik řádků obsahuje odpovídající vzor, ​​použijte parametr -c:

$ grep -c t file1
2
$

Pokud potřebujete zadat více než jeden odpovídající vzor, ​​použijte parametr -e k určení každého jednotlivého vzoru:

$ grep -e t -e f file1
two
three
four
five
$

Pokud při spouštění příkazu grep narazíte na níže uvedenou chybu:

grep: command not found

můžete zkusit nainstalovat níže uvedený balíček podle vaší volby distribuce:

Distribuce OS Příkaz
OS X brew install grep
Debian apt-get install grep
Ubuntu apt-get install grep
Alpine apk přidat grep
Arch Linux pacman -S grep
Kali Linux apt-get install grep
CentOS yum install grep
Fedora instalace dnf grep
Raspbian apt-get install grep

Příklady příkazů grep

1. Chcete-li interpretovat PATTERN jako rozšířený regulární výraz:

# grep --extended-regexp PATTERN
# grep -E PATTERN 

2. Chcete-li interpretovat PATTERN jako seznam pevných řetězců:

# grep -F PATTERN
# grep --fixed-strings PATTERN 

3. Chcete-li interpretovat PATTERN jako základní regulární výraz:

# grep -G PATTERN
# grep --basic-regexp PATTERN 

4. Chcete-li interpretovat PATTERN jako regulární výraz Perlu:

# grep -P PATTERN
# grep --perl-regexp PATTERN 

5. Chcete-li jako vzor použít PATTERN:

# grep -e PATTERN, 
# grep --regexp=PATTERN 

6. Chcete-li získat vzory ze FILE, jeden na řádek:

# grep -f FILE, --file=FILE

7. Chcete-li ignorovat rozlišení velkých a malých písmen jak ve PATTERN, tak ve vstupních souborech:

# grep -i PATTERN
# grep --ignore-case PATTERN

8. Chcete-li obrátit smysl shody, vyberte neodpovídající řádky:

# grep -v PATTERN
# grep --invert-match PATTERN 

9. Chcete-li vybrat pouze řádky obsahující shody, které tvoří celá slova:

# grep -w PATTERN
# grep --word-regexp PATTERN

10. Chcete-li vybrat pouze ty shody, které přesně odpovídají celému řádku:

# grep -x PATTERN
# grep --line-regexp PATTERN 

11. Ignorování velikosti písmen:

# grep -y PATTERN 

12. Potlačení normálního výstupu; místo toho vytiskněte počet odpovídajících řádků:

# grep -c PATTERN
# grep --count PATTERN 

13. Barevné zobrazení:

# grep --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á:

# grep -L
# grep --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:

# grep -l
# grep --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:

# grep -q 
# grep --quiet
# grep --silent 

17. Chcete-li zastavit čtení souboru po NUM odpovídajících řádcích:

# grep -m NUM
# grep --max-count=NUM 

18. Chcete-li vytisknout pouze shodné (neprázdné) části shodného řádku:

# grep -o PATTERN
# grep --only-matching PATTERN 

19. Chcete-li potlačit chybové zprávy o neexistujících nebo nečitelných souborech:

# grep -s PATTERN
# grep --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:

# grep -b PATTERN
# grep --byte-offset PATTERN 

21. Tisk názvu souboru pro každou shodu:

# grep -H PATTERN
# grep --with-filename PATTERN

22. Chcete-li potlačit předponu názvů souborů na výstupu:

# grep -h PATTERN
# grep --no-filename PATTERN 

23. To Display vstup skutečně pocházející ze standardního vstupu jako vstup pocházející ze souboru LABEL:

# grep -cd PATTERN | grep --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:

# grep -n PATTERN
# grep --line-number PATTERN 

25. Chcete-li se ujistit, že první znak skutečného obsahu řádku leží na zarážce tabulátoru:

# grep -T PATTERN
# grep --initial-tab PATTERN 

26. Chcete-li hlásit odchylky bajtů ve stylu Unix:

# grep -u PATTERN
# grep --unix-byte-offsets PATTERN 

27. Pro Výstup nulového bajtu místo znaku, který normálně následuje za názvem souboru:

# grep -Z PATTERN
# grep --null PATTERN

28. Chcete-li po odpovídajících řádcích vytisknout NUM řádků kontextu na konci:

# grep -A NUM PATTERN
# grep --after-context=NUM PATTERN 

29. Chcete-li vytisknout NUM řádků úvodního kontextu před odpovídajícími řádky:

# grep -B NUM PATTERN
# grep --before-context=NUM PATTERN 

30. Chcete-li vytisknout NUM řádků výstupního kontextu:

# grep -C NUM PATTERN
# grep --context=NUM PATTERN 

31. Chcete-li zpracovat binární soubor, jako by to byl text:

# grep -a PATTERN /tmp/bin
# grep -text PATTERN /tmp/bin 

32. Předpokládejme, že soubor je typu TYPE:

# grep --binary-files=TYPE PATTERN 

33. Pro Pokud je vstupním souborem zařízení, FIFO nebo zásuvka, zpracujte jej pomocí AKCE:

# grep -D ACTION PATTERN
# grep --devices=ACTION PATTERN 

34. Komu Pokud je vstupním souborem adresář, použijte ke zpracování AKCI:

# grep -d ACTION PATTERN
# grep --directories=ACTION PATTERN 

35. Chcete-li přeskočit soubory, jejichž základní název odpovídá GLOB:

# grep --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:

# grep --exclude-from=FILE PATTERN 

37. Chcete-li vyloučit adresáře odpovídající vzoru DIR z rekurzivního vyhledávání:

# grep --exclude-dir=DIR PATTERN

38. Chcete-li zpracovat binární soubor, jako by neobsahoval odpovídající data:

# grep -I PATTERN

39. Chcete-li hledat pouze soubory, jejichž základní název odpovídá GLOB:

# grep --include=GLOB 

40. Chcete-li číst všechny soubory v každém adresáři, rekurzivně:

# grep -r PATTERN
# grep -R PATTERN 

41. Použití ukládání do vyrovnávací paměti na výstupu:

# grep --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í:

# grep --mmap PATTERN 

43. Chcete-li považovat soubor(y) za binární:

# grep -U /tmp/file PATTERN
# grep --binary /tmp/file PATTERN 

44. Chcete-li zacházet se vstupem jako se sadou řádků:

# grep -z PATTERN
# grep --null-data PATTERN 

45. Zobrazení nápovědy:

# grep -h 

46. ​​Chcete-li vytisknout číslo verze grep:

# grep -V 


Linux
  1. Subscription-manager:příkaz nenalezen

  2. dnf:příkaz nenalezen

  3. bc:příkaz nenalezen

  1. dpkg:příkaz nenalezen

  2. id:příkaz nenalezen

  3. w:příkaz nenalezen

  1. ifrename:příkaz nenalezen

  2. df:příkaz nenalezen

  3. du:příkaz nenalezen