Grep je výkonný příkaz UNIX, který vám umožňuje prohledávat obsah souboru podle různých parametrů. Je to zvláště užitečné při odstraňování problémů nebo ladění.
Příkaz grep má obrovské množství možností a případů použití. Pravděpodobně je nikdy nebudete potřebovat ani používat. Většinu času však nakonec použijete několik příkazů grep.
Tento článek uvádí nejběžnější příkazy grep s rychlými příklady. Příručka Linuxu již obsahuje podrobný článek o grepu, takže zde nebudu zacházet do hloubky. Zde uvedu pouze běžné možnosti a jejich vysvětlení.
Je dobré, pokud již znáte příkaz grep, ale stále zapomínáte, která možnost co dělá.
Možnost | Příklad příkazu | Popis |
---|---|---|
i | soubor se vzorem grep -i | Vyhledávání bez rozlišení malých a velkých písmen |
A | grep -Soubor se vzorem | Po zápase zobrazit n řádků |
B | grep -B n soubor vzoru | Ukázat n řádků před zápasem |
C | soubor se vzorem grep -C n | Zobrazit n řádků před a po zápase |
v | soubor se vzorem grep -v | Zobrazit řádky, které se neshodují |
c | soubor se vzorem grep -c | Spočítat počet odpovídajících řádků |
l | soubor se vzorem grep -l | Zobrazovat pouze názvy souborů |
w | soubor se vzorem grep -w | Najděte přesné slovo |
e | grep -e regex soubor | Odpovídají vzoru regulárního výrazu |
a | grep -soubor se vzorem | Vyhledávání v binárních souborech |
r | grep -r vzor dir | Rekurzivně vyhledávat v adresáři |
Přiložil jsem cheatsheet ve formátu PDF, který si můžete stáhnout, vytisknout a uložit na svůj stůl.
Stáhněte si Grep Cheat Sheet
Rychlé příklady příkazu Grep
Pravděpodobně již víte, že k vyhledání konkrétního textu nebo vzoru v souboru musíte použít grep takto:
grep search_pattern filename
Podívejme se na několik běžných případů použití příkazu grep.
Vyhledávání bez rozlišení malých a velkých písmen
Ve výchozím nastavení se při vyhledávání pomocí grep rozlišují velká a malá písmena. Porovnávání velkých a malých písmen s -i
můžete ignorovat možnost:
grep -i search_pattern filename
Tímto způsobem grep vrátí řádky, které odpovídají oběma Holmes
a holmes
.
Zobrazit řádky před a za odpovídajícími řádky
Ve výchozím nastavení vidíte pouze odpovídající čáry. Ale když něco řešíte, pomůže vám vidět pár řádků před a/nebo za odpovídajícími řádky.
Můžete použít -A
zobrazit řádky po odpovídajících. Pamatujte, že A je pro After.
Příkaz níže zobrazí odpovídající řádky spolu s 5 řádky po shodě.
grep -A 5 search_pattern filename
Podobně můžete použít -B
možnost zobrazit řádky před odpovídajícími. Pamatujte, že B je pro Před.
Níže uvedený příkaz zobrazí 5 řádků před odpovídajícími řádky spolu s odpovídajícími řádky.
grep -B 5 search_pattern filename
Moje oblíbená je volba -C
protože zobrazuje řádky, které jsou před a za odpovídajícími. Pamatujte, že C zde znamená kruh.
Níže uvedený příkaz zobrazí 5 řádků před odpovídajícím řádkem, odpovídající řádek a 5 řádků za řádkem shodného řádku.
grep -C 5 search_pattern filename
Zobrazit řádky, které se neshodují
Pomocí grep můžete zobrazit všechny řádky, které NEODPOVÍDAJÍ danému vzoru. Toto 'invertovat párování' se používá s -v
možnost:
grep -v search_pattern filename
-i
můžete kombinovat a -v
možnosti.
Počítat počet odpovídajících řádků
Místo zobrazení odpovídajících řádků můžete pouze zjistit, kolik řádků odpovídá vzoru pomocí -c
volba. Toto je malé písmeno c.
grep -c search_pattern filename
Můžete kombinovat -c
a -v
možnost získat počet řádků, které neodpovídají danému vzoru. Můžete samozřejmě použít volbu -i
bez rozlišení velkých a malých písmen .
Zobrazit čísla řádků odpovídajících řádků
Chcete-li zobrazit čísla řádků odpovídajících řádků, můžete použít -n
možnost.
grep -n search_pattern filename
Totéž můžete udělat s invertovaným vyhledáváním.
Hledat ve více souborech
Můžete poskytnout více než jeden soubor k vyhledání grepu.
grep search_pattern file1 file2
To by mohlo fungovat, ale praktičtějším příkladem je hledání určitého typu souborů. Pokud například chcete hledat řetězec pouze ve skriptech shellu (soubory končící na .sh), můžete použít:
grep search_pattern *.sh
Vyhledat všechny soubory v adresáři rekurzivně
Můžete provést rekurzivní vyhledávání pomocí volby grep -r
. Vyhledá daný vzor ve všech souborech v aktuálním adresáři a jeho podadresářích.
grep -r search_pattern directory_path
Zobrazit pouze názvy souborů
Ve výchozím nastavení grep zobrazuje odpovídající čáry. Pokud jste spustili vyhledávání na několika souborech a chcete pouze vidět, které soubory obsahují řetězec, můžete použít -l
možnost.
grep -l search_pattern files_pattern
Řekněme, že chcete vidět, které soubory Markdown obsahují slovo „příručka“, můžete použít:
grep -l handbook *.md
Hledat pouze celé slovo
Ve výchozím nastavení grep zobrazí všechny řádky, které obsahují daný řetězec. Možná to nebudete chtít vždy. Pokud hledáte slovo 'hotovo', zobrazí se také řádky obsahující slova 'doner' nebo 'opuštěný'.
Chcete-li, aby grep vyhledával pouze celé slovo, můžete použít volbu -w
:
grep -w search_string file
Tímto způsobem, pokud hledáte slovo 'done', zobrazí se pouze řádky obsahující 'done', nikoli 'doner' nebo 'abandoned'.
Vyhledat vzory regulárních výrazů
Pomocí vzoru regulárních výrazů můžete své vyhledávání velmi zrychlit. Existuje vyhrazená volba -e
což umožňuje použití vzoru regulárního výrazu a volby -E
který umožňuje použití rozšířených vzorů regulárních výrazů.
grep -e regex_pattern file
Vyhledat ten či onen vzor
Ve stejném vyhledávání grep můžete hledat více vzorů. Pokud chcete vidět řádky, které obsahují jeden nebo druhý vzor, můžete použít operátor OR |
. Tento speciální znak však musíte opustit následujícím způsobem.
grep 'pattern1\|pattern' filename
S operátorem OR můžete použít více vzorů.
Pro operátor AND neexistuje žádná konkrétní možnost. K tomu můžete použít grep vícekrát s přesměrováním potrubí.
Prohledat binární soubory
Grep ve výchozím nastavení ignoruje binární soubory. Pomocí -a
můžete vyhledávat v binárních souborech, jako by to byl textový soubor možnost.
grep -a pattern binary_file
Stáhnout šablonu příkazů Grep
Tuto stránku si můžete uložit do záložek, abyste mohli rychle odkazovat na možnosti příkazu grep a případy použití.
Tento grep cheatsheet si také můžete stáhnout ve formátu PDF, vytisknout si ho a mít na stole, abyste měli rychlý pohled bez ztráty času.
Stáhnout Cheatsheet příkazů Grep ZDARMA Okamžité stažení běžných příkazů grep s popisem ve formátu PDF.grep-command-cheatsheet.pdf78 KB
Dejte mi vědět, pokud máte nějaký další běžný případ použití grep, který byste rádi viděli na této stránce.