GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů grep v Linuxu (Cheat Sheet)

Často ve velkém souboru musíte hledat konkrétní řádek dat pohřbený někde uprostřed souboru. Namísto ručního procházení celým souborem můžete nechat příkaz grep vyhledat vás. Formát příkazového řádku pro příkaz grep je:

# grep [options] pattern [file]

Příkaz grep hledá buď na vstupu, nebo ve vámi zadaném souboru řádky, které obsahují znaky, které odpovídají zadanému vzoru. Výstupem z grep jsou řádky, které obsahují odpovídající vzor. Kvůli popularitě příkazu grep prošel během své životnosti mnoha vývojovými změnami. Do příkazu grep bylo přidáno mnoho funkcí. Pokud se podíváte na manuálové stránky příkazu grep, uvidíte, jak je univerzální.

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
$

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. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. Příklady příkazů připojení iSCSI (cheat Sheet)

  1. Příklady příkazů rm v Linuxu

  2. Příklady příkazů ps v Linuxu

  3. w Příklady příkazů v Linuxu

  1. Příklady příkazů fgrep v Linuxu

  2. Příklady příkazů grep v Linuxu (Cheat Sheet)

  3. Příklady příkazů ac v Linuxu