Příkazy A-Z

50 Produktivní a praktický příkaz grep pro nadšence Linuxu

50 Produktivní a praktický příkaz grep pro nadšence Linuxu

Nástroj grep v systému Linux a dalších systémech podobných systému Unix je jedním z nejsilnějších nástrojů příkazového řádku, jaký byl kdy vyvinut. Jeho počátky sahají do ed příkazu g / re / p a je vytvořen legendárním Kenem Thompsonem. Pokud jste ostříleným uživatelem systému Linux, budete znát důležitost regulárních výrazů při zpracování souborů. Mnoho začínajících uživatelů však o nich prostě nemá ponětí. Často vidíme, jak je uživatelům používání těchto technik nepříjemné. Většina příkazů grep však není tak složitá. Grep můžete snadno zvládnout tím, že mu dáte nějaký čas. Pokud se chcete stát linuxovým guru, doporučujeme vám tento nástroj využít v každodenních výpočtech.

Základní příkazy grep pro moderní uživatele systému Linux


Jednou z nejkrásnějších věcí na příkazu Linux grep je, že jej můžete použít se všemi možnými věcmi. Vzorky můžete grepovat přímo v souborech nebo ze standardního výstupu. Umožňuje uživatelům posílat výstupy jiných příkazů na grep a vyhledávat konkrétní informace. Následující příkazy budou obsahovat 50 takových příkazů.

Demo soubory pro ilustraci příkazů grep Linuxu


Vzhledem k tomu, že obslužný program Linux grep funguje na souborech, nastínili jsme některé soubory, které můžete procvičit. Většina distribucí Linuxu by měla obsahovat některé soubory slovníků v adresáři / usr / share / dict. Zde nalezený americko-anglický soubor jsme použili pro některé naše demonstrační účely. Také jsme vytvořili jednoduchý textový soubor obsahující následující.

toto je ukázkový soubor, který obsahuje kolekci řádků pro demonstraci různých příkazů grep Linuxu

Pojmenovali jsme to test.txt a použili v mnoha příkladech grep. Text můžete zkopírovat z tohoto místa a použít procvičování stejného názvu souboru. Dále jsme také využili soubor / etc / passwd.

Základní grep příklady


Vzhledem k tomu, že příkaz grep umožňuje uživatelům vykopat informace pomocí spousty kombinací, začínající uživatelé jsou často zaměňováni s jejich použitím. Ukážeme několik základních grepových příkladů, které vám pomohou seznámit se s tímto nástrojem. Pomůže vám to naučit se pokročilejší příkazy v budoucnu.

1. Vyhledejte informace v jednom souboru


Jedním ze základních použití grepu v Linuxu je vyhledání řádků obsahujících konkrétní informace ze souborů. Jednoduše zadejte vzor následovaný názvem souboru po grepu, jak je znázorněno níže.

$ grep root / etc / passwd $ grep $ USER / etc / passwd

První příklad zobrazí všechny řádky obsahující root v souboru / etc / passwd. Druhý příkaz zobrazí všechny řádky, které obsahují vaše uživatelské jméno.

2. Vyhledejte informace ve více souborech


Grep můžete použít k tisku řádků obsahujících konkrétní vzory z více než jednoho souboru současně. Jednoduše zadejte všechny názvy souborů oddělené mezerami za vzorem. Zkopírovali jsme test.txt a vytvořil další soubor obsahující stejné řádky, ale pojmenovaný test1.txt.

$ cp test.txt test1.test souboru txt $ grep.txt test1.txt

Nyní grep vytiskne všechny řádky obsahující soubor z obou souborů.

3. Tisk pouze odpovídající části


Ve výchozím nastavení grep zobrazí celý řádek obsahující vzor. Tento výstup můžete potlačit a říct grepu, aby zobrazoval pouze shodnou část. Grep tedy vygeneruje pouze určené vzory, pokud existují.

$ grep -o $ USER / etc / passwd $ grep - pouze odpovídající $ USER / etc / passwd

Tento příkaz vygeneruje hodnotu $ USER kolikrát se s tím grep setká. Pokud není nalezena žádná shoda, výstup bude prázdný a grep bude ukončen.

4. Ignorovat porovnávání případů


Ve výchozím nastavení bude grep vyhledávat daný vzor způsobem rozlišujícím velká a malá písmena. Někdy si uživatel nemusí být jistý případem vzoru. Můžete říct grepu, aby v takových případech ignoroval případ vzoru, jak je ukázáno níže.

$ grep -i $ USER / etc / passwd $ grep --ignore-case $ USER / etc / passwd $ grep -y $ USER / etc / passwd

Tím se vrátí další řádek výstupu v mém terminálu. Mělo by to být stejné i ve vašem zařízení. Poslední příkaz je zastaralý, takže ho nepoužívejte.

5. Invertovat odpovídající grepové vzory


Nástroj grep umožňuje uživatelům invertovat shodu. To znamená, že grep vytiskne všechny řádky, které neobsahují daný vzor. Pro rychlé zobrazení se podívejte na níže uvedený příkaz.

$ grep -v test souboru.txt $ grep --invert-match test souborů.txt

Výše uvedené příkazy jsou ekvivalentní a tisknou pouze ty řádky, které neobsahují soubor.

6. Porovnávat pouze celá slova


Obslužný program grep vytiskne všechny řádky obsahující vzor. Bude tedy také tisknout řádky, které mají vzor uvnitř libovolných slov nebo vět. Často budete chtít tyto hodnoty zahodit. Můžete to snadno udělat pomocí volby -w, jak je znázorněno níže.

$ grep ahoj / usr / share / dict / americko-anglický $ grep -w ahoj / usr / share / dict / americko-anglický

Pokud je spustíte jeden po druhém, uvidíte rozdíl. V mém systému první příkaz vrátí 5 řádků, zatímco druhý příkaz pouze dva.

7. Spočítejte počet shod


Často můžete jednoduše chtít počet nalezených shod pomocí nějakého vzoru. The -C možnost je v takových situacích velmi užitečná. Když je použit, grep vrátí počet shod místo tisku řádků. Tento příznak jsme přidali k výše uvedeným příkazům, abychom vám pomohli vizualizovat, jak to funguje.

$ grep -c ahoj / usr / share / dict / americko-anglický $ grep -c -w ahoj / usr / share / dict / americko-anglický

Příkazy vrátí 5, respektive 2.

8. Zobrazit číslo řádku


Můžete instruovat grep, aby zobrazil čísla řádků, kde byla nalezena shoda. Využívá index založený na 1, kde první řádek souboru je řádek číslo 1 a desátý řádek je řádek číslo 10. Podívejte se na níže uvedené příkazy, abyste pochopili, jak to funguje.

$ grep -n -w cat / usr / share / dict / americko-anglický $ grep - line-number -w cat / usr / share / dict / americko-anglický

Oba výše uvedené příkazy vytisknou v americko-anglickém slovníku řádky, které obsahují slovo cat.

9. Potlačit předpony názvu souboru


Pokud znovu spustíte příklady druhého příkazu, zjistíte, že grep předponu výstupu s názvy souborů. Často je budete chtít ignorovat nebo úplně vynechat. Ilustrují to následující příkazy Linux grep.

$ grep -h test souboru.txt test1.txt $ grep - test souboru bez názvu souboru.txt test1.txt

Oba výše uvedené příkazy jsou ekvivalentní, takže si můžete vybrat, co chcete. Vrátí pouze řádky se shodným vzorem, nikoli názvy souborů.

10. Zobrazit pouze předpony názvu souboru


Na druhou stranu někdy můžete chtít pouze názvy souborů, které obsahují nějaký vzor. Můžete použít -l možnost. Dlouhá forma této možnosti je -soubory se shodami.

$ grep -l cat / usr / share / dict / * - anglicky $ grep --soubory se shodami cat / usr / share / dict / * - anglicky

Oba výše uvedené příkazy vytisknou názvy souborů, které obsahují vzorovou kočku. Ukazuje americko-anglický a britsko-anglický slovník jako výstup grepu v mém terminálu.

11. Číst soubory rekurzivně


Můžete říct grepu, aby rekurzivně četl všechny soubory v adresáři pomocí -r nebo -rekurzivní možnost. Tím se vytisknou všechny řádky, které obsahují shodu, a předpona s názvy souborů, kde byly nalezeny.

$ grep -r -w cat / usr / share / dict

Tento příkaz vygeneruje všechny soubory, které v něm obsahují slovo kočka, spolu s jejich názvy souborů. Používáme umístění / usr / share / dict, protože již obsahuje více souborů slovníku. The -R Tuto možnost lze použít k povolení grepu procházet symbolickými odkazy.

12. Zobrazit shody s celým vzorem


Můžete také dát pokyn grepu, aby zobrazoval pouze ty shody, které obsahují přesnou shodu v celém řádku. Například níže uvedený příkaz vygeneruje řádky, které obsahují pouze slovo kočka.

$ grep -r -x cat / usr / share / dict / $ grep -r --line-regexp cat / usr / share / dict /

Jednoduše vrátí tři řádky, které v mých slovnících obsahují pouze kočku. Můj Ubuntu 19.10 má tři soubory v adresáři / dict obsahující slovo cat v jednom řádku.

Regulární výrazy v příkazu Linux grep


Jednou z nejpřesvědčivějších funkcí grepu je jeho schopnost pracovat se složitými regulárními výrazy. Viděli jsme pouze několik základních grepových příkladů ilustrujících mnoho z jeho možností. Schopnost zpracovávat soubory založené na regulárních výrazech je však mnohem náročnější. Protože regulární výrazy vyžadují důkladné technické studium, zůstaneme u jednoduchých příkladů.

13. Vyberte Zápasy na začátku


Můžete použít grep k určení shody pouze na začátku řádku. Tomu se říká ukotvení vzoru. Budete muset použít stříška '^' provozovatel za tímto účelem.

$ grep "^ kočka" / usr / share / dict / americko-anglický

Výše uvedený příkaz vytiskne všechny řádky v americko-anglickém slovníku Linuxu, který začíná cat. Až do této části našeho průvodce jsme nepoužívali uvozovky k upřesnění našich vzorů. Nyní je však použijeme a doporučujeme vám je také použít.

14. Na konci vyberte Zápasy


Podobně jako výše uvedený příkaz můžete také ukotvit svůj vzor tak, aby odpovídal řádkům obsahujícím vzor na konci. Podívejte se na níže uvedený příkaz, abyste pochopili, jak to funguje v Linuxu grep.

$ grep "fish $" / usr / share / dict / americko-anglický

Tento příkaz vytiskne všechny řádky, které končí rybou. Všimněte si, jak jsme v tomto případě použili symbol $ na konci našeho vzoru.

15. Porovnejte jeden znak


Unix grep obslužný program umožňuje uživatelům přiřadit libovolný znak jako součást vzoru. Tečka ''.'' k tomuto účelu se používá operátor. Pro lepší pochopení se podívejte na níže uvedené příklady.

$ grep -x "c.t "/ usr / share / dict / americko-anglický

Tento příkaz vytiskne všechny řádky obsahující tři znaková slova začínající c a končící t. Pokud vynecháte -X Volba, výstup bude opravdu velký, protože grep zobrazí všechny řádky, které mají libovolnou kombinaci těchto znaků. Můžete použít double určit dva náhodné znaky a podobně.

16. Zápas ze sady postav


Můžete také vybrat ze sady znaků snadno pomocí závorek. Řekne grep, aby vybral znaky na základě některých kritérií. K určení těchto kritérií obvykle použijete regulární výrazy.

$ grep "c [aeiou] t" / usr / share / dict / americko-anglický $ grep -x "m [aeiou] n" / usr / share / dict / americko-anglický

První příklad vytiskne všechny řádky v americko-anglickém slovníku, které obsahují vzor c následovaný jedinou samohláskou a znak t. Následující příklad vytiskne všechna přesná slova, která obsahují m, následovaná samohláskou a poté n.

17. Zápas z řady postav


Následující příkazy předvedou, jak můžete pomocí grepu porovnávat z řady znaků. Vyzkoušejte si příkazy sami, abyste zjistili, jak věci fungují.

$ grep "^ [A-Z]" / usr / share / dict / americko-anglický $ grep "[A-Z] $" / usr / share / dict / americko-anglický

První příklad vytiskne všechny řádky, které začínají velkým písmenem. Druhý příkaz zobrazí pouze ty řádky, které končí velkým písmenem.

18. Vynechat znaky ve vzorech


Někdy budete chtít hledat vzory, které neobsahují nějaký konkrétní znak. V dalším příkladu vám ukážeme, jak to udělat pomocí grepu.

$ grep -w "[^ c] na $" / usr / share / dict / americko-anglické $ grep -w "[^ c] [aeiou] t" / usr / share / dict / americko-anglické

První příkaz zobrazí všechna slova končící na kromě kat. The [^ c] řekne grepu, aby vynechal znak c z jeho hledání. Druhý příklad říká grepu, aby zobrazil všechna slova, která končí samohláskou následovanou t a neobsahuje c.

19. Seskupte znaky uvnitř vzoru


[] Umožňuje zadat pouze jednu znakovou sadu. I když pro určení dalších znaků můžete použít více sad závorek, není vhodné, pokud již víte, o které skupiny znaků máte zájem. Naštěstí můžete použít () ke seskupení více znaků ve vašich vzorech.

$ grep -E "(copy)" / usr / share / dict / americko-anglický $ egrep "(copy)" / usr / share / dict / americko-anglický

První příkaz vypíše všechny řádky, které mají kopii skupiny znaků. The -E vlajka je povinná. Pokud chcete tento příznak vynechat, můžete použít druhý příkaz egrep. Je to prostě rozšířený front-end pro grep.

20. Určete volitelné znaky ve vzoru


Obslužný program grep také umožňuje uživatelům určit pro jejich vzory volitelné znaky. Budete muset použít "?“ symbol pro toto. Cokoli před tímto znakem bude ve vašem vzoru volitelný.

$ grep -E "(komuna)?nist "/ usr / share / dict / americko-anglický

Tento příkaz vytiskne slovo komunista vedle všech řádků ve slovníku, který v nich obsahuje nist. Podívejte se, jak -E zde se používá možnost. Umožňuje grepu provádět složitější nebo rozšířené porovnávání vzorů.

21. Určete opakování ve vzoru


Můžete určit, kolikrát je třeba vzor shodovat pro určité příkazy grep. Následující příkazy ukazují, jak vybrat počet znaků ve třídě pro grep vzory.

$ grep -E "[aeiou] 3" / usr / share / dict / americko-anglický $ grep -E "[aeiou] 3" / usr / share / dict / americko-anglický

První příklad vytiskne všechny řádky, které obsahují tři samohlásky, zatímco na druhé straně, poslední příklad vytiskne všechny řádky obsahující c následované 2 samohláskami, pak t.

22. Určete jedno nebo více opakování


Můžete také použít „+“ operátor zahrnutý v rozšířené sadě funkcí grepu pro určení shody jednou nebo vícekrát. Podívejte se na následující příkazy a podívejte se, jak to funguje v příkazu Linux grep.

$ egrep -c "[aeiou] +" / usr / share / dict / americko-anglický $ egrep -c "[aeiou] 3" / usr / share / dict / americko-anglický

První příkaz vytiskne, kolikrát grep narazí na jednu nebo více po sobě jdoucích samohlásek. A druhý příkaz ukazuje, kolik řádků obsahuje tři po sobě jdoucí samohlásky. Měla by existovat velká rozdíl.

23. Určete dolní mez pro opakování


Pro počet opakování shody můžete vybrat horní i dolní mez. Následující příklady ukazují, jak vybrat dolní meze v akci.

$ egrep "[aeiou] 3," / usr / share / dict / americko-anglický

Použili jsme egrep namísto grep -E pro výše uvedený příkaz. Vybírá všechny řádky, které obsahují 3 nebo více po sobě jdoucích samohlásek.

24. Určete horní hranici pro opakování


Stejně jako u nižších mezí můžete také grep říct, kolikrát se má maximálně shodovat s určitými znaky. Následující příklad odpovídá všem řádkům v americko-anglickém slovníku, který obsahuje až 3 samohlásky.

$ egrep "[aeiou] , 3" / usr / share / dict / americko-anglický

Doporučujeme uživatelům použít egrep pro tyto rozšířené funkce, protože je dnes o něco rychlejší a spíše konvenční. Všimněte si umístění čárky ',' symbol ve dvou výše uvedených příkazech.

25. Určete horní a dolní mez


Nástroj grep také umožňuje uživatelům vybrat horní i dolní mez pro opakování shody současně. Následující příkaz říká grepu, aby odpovídal všem slovům obsahujícím minimálně dvě a maximálně čtyři po sobě jdoucí samohlásky.

$ egrep "[aeiou] 2,4" / usr / share / dict / americko-anglický

Tímto způsobem můžete zadat horní i dolní limit současně.

26. Vyberte Všechny znaky


Můžete použít zástupný znak '*' pro výběr všech nula nebo více výskytů třídy znaků ve vašich vzorech grep. Podívejte se na další příklad, abyste pochopili, jak to funguje.

$ egrep "collect *" test.txt $ egrep "c [aeiou] * t / usr / share / dict / americko-anglický

První příklad vytiskne kolekci slov, protože je to jediné slovo, které odpovídá 'collect' jednou nebo vícekrát v test.txt soubor. Poslední příklad odpovídá všem řádkům obsahujícím c následovaným libovolným počtem samohlásek, poté t v americko-anglickém slovníku Linuxu.

27. Alternativní regulární výrazy


Nástroj grep umožňuje uživatelům určit alternativní vzory. Můžete použít „|“ znak pro příkaz grep k výběru jednoho ze dvou vzorů. Tento znak je v terminologii POSIX známý jako operátor infix. Podívejte se na níže uvedený příklad, abyste pochopili jeho účinek.

$ egrep "[AEIOU] 2 | [aeiou] 2" / usr / share / dict / americko-anglický

Tento příkaz říká grepu, aby odpovídal všem řádkům, které obsahují buď 2 po sobě jdoucí velké samohlásky nebo malé samohlásky.

28. Vyberte vzor pro shodu alfanumerických znaků


Alfanumerické vzory obsahují jak číslice, tak písmena. Níže uvedené příklady ukazují, jak pomocí příkazu grep vybrat všechny řádky, které obsahují alfanumerické znaky.

$ egrep "[0-9A-Za-z] 3" / usr / share / dict / americko-anglický $ egrep "[[: alnum:]] 3" / usr / share / dict / americko-anglický

Oba výše uvedené příkazy dělají totéž. Říkáme grep, aby odpovídal všem řádkům obsahujícím tři po sobě jdoucí kombinace znaků 0-9, A-Z a a-z. Druhý příklad nás však zachrání před samotným psaním specifikátoru vzoru. Tomu se říká speciální výraz a grep nabízí několik z nich.

29. Unikněte zvláštním postavám


Dosud jsme používali mnoho speciálních znaků, například „$“, „^“ a „|“ pro definování rozšířených regulárních výrazů. Ale co když potřebujete sladit některou z těchto postav ve vašem vzoru. Naštěstí to už vývojáři grepu mysleli a umožňují uniknout těmto speciálním znakům pomocí zpětného lomítka „\“.

$ egrep "\ -" / etc / passwd

Výše uvedený příkaz odpovídá všem řádkům souboru / etc / passwd soubor proti pomlčce „-“ znak a vytiskne je. Tímto způsobem můžete uniknout jakýmkoli dalším speciálním znakům pomocí zpětného lomítka.

30. Opakujte grepové vzory


Už jste použili „*“ zástupný znak pro výběr řetězců znaků ve vzorech. Následující příkaz ukazuje, jak vytisknout všechny řádky, které začínají závorkami a obsahují pouze písmena a jednotlivé mezery. Použijeme „*“ udělat toto.

$ egrep "([A-Za-z] *)" test.txt

Nyní přidejte několik řádků uzavřených v závorkách do ukázkového souboru test.txt a spusťte tento příkaz. Tento příkaz by měl být již na spadnutí.

Linux grep Příkazy v každodenních výpočtech


Jednou z nejlepších věcí na grepu je jeho univerzální použitelnost. Tento příkaz můžete použít k odfiltrování základních informací při spouštění důležitých příkazů terminálu systému Linux. Ačkoli níže uvedená část poskytuje rychlý pohled na některé z nich, základní principy můžete použít kdekoli.

31. Zobrazit všechny podadresáře


Následující příkaz ilustruje, jak můžeme pomocí grepu porovnat všechny složky v adresáři. Příkaz ls -l používáme k zobrazení obsahu adresáře ve standardním výstupu a řezání odpovídajících řádků pomocí grep.

$ ls -l ~ | grep "drw"

Protože všechny adresáře v Linuxu obsahují vzor drw na začátku to používáme jako vzor pro grep.

32. Zobrazit všechny soubory MP3


Následující příkaz ukazuje, jak použít grep k vyhledání souborů mp3 ve vašem počítači se systémem Linux. Zde znovu použijeme příkaz ls.

$ ls / cesta / do / hudba / adresář / | grep ".mp3 "

První, je vytiskne obsah vašeho hudebního adresáře na výstup a poté grep bude odpovídat všem řádkům, které obsahují .mp3 v nich. Neuvidíte výstup ls, protože jsme tato data poslali přímo na grep.

33. Hledání textu v souborech


Můžete také použít grep k vyhledání konkrétních textových vzorů v jediném souboru nebo kolekci souborů. Předpokládejme, že chcete vyhledat všechny soubory programu C, které obsahují text hlavní v nich. S tím si nedělejte starosti, vždy to můžete pozdravit.

$ grep -l 'main' / cesta / k / souborům / *.C

Ve výchozím nastavení by grep měl barevně kódovat část shody, aby vám pomohl snadno vizualizovat vaše nálezy. Pokud se to však ve vašem počítači se systémem Linux nezdaří, zkuste přidat -barva možnost na váš příkaz.

34. Najděte síťové hostitele


Soubor / etc / hosts obsahuje informace, jako je IP hostitele a název hostitele. Můžete použít grep k vyhledání konkrétních informací z této položky pomocí níže uvedeného příkazu.

$ grep -E -o "([0-9] 1,3 [\.]) 3 [0-9] 1,3 "/ etc / hosts

Nebojte se, pokud vzor nedostanete hned. Pokud to rozdělíte jeden po druhém, je to velmi snadné pochopit. Ve skutečnosti tento vzor vyhledává všechny shody v rozsahu 0.0.0.0 a 999.999.999.999. Můžete také vyhledávat pomocí názvů hostitelů.

35. Najděte nainstalované balíčky


Linux sedí na několika knihovnách a balíčcích. Nástroj příkazového řádku dpkg umožňuje správcům ovládat balíčky v distribucích Linuxu založených na Debianu, jako je Ubuntu. Níže uvidíte, jak používáme grep k odfiltrování základních informací o balíčku pomocí dpkg.

$ dpkg - seznam | grep "chrom"

Přináší několik užitečných informací v mém stroji, včetně čísla verze, architektury a popisu prohlížeče Google Chrome. Můžete jej použít k vyhledání informací o balíčcích nainstalovaných ve vašem systému podobně.

36. Najděte dostupné obrázky Linuxu


Ještě jednou používáme nástroj grep s příkazem dpkg, abychom našli všechny dostupné obrazy Linuxu. Výstup tohoto příkazu se bude v různých systémech značně lišit.

$ dpkg - seznam | grep linux-image

Tento příkaz jednoduše vytiskne výsledek dpkg -list a přenese ho na grep. Poté odpovídá všem řádkům pro daný vzor.

37. Najděte informace o modelu pro CPU


Níže uvedený příkaz ukazuje, jak vyhledat informace o modelu CPU v systémech založených na systému Linux pomocí příkazu grep.

$ cat / proc / cpuinfo | grep -i 'model' $ grep -i "model" / proc / cpuinfo

V prvním příkladu jsme pipovali výstup cat / proc / cpuinfo na grep a uzavřeli všechny řádky obsahující slovní model. Nicméně od té doby / proc / cpuinfo je sám o sobě soubor, můžete na něj použít grep přímo, jak ukazuje druhý příklad.

38. Najděte informace o protokolu


Linux pro nás správce systému ukládá všechny druhy protokolů do adresáře / var. Z těchto souborů protokolu můžete snadno získat užitečné informace. Následující příkaz ukazuje jednoduchý příklad.

$ grep -i "cron" / var / log / autor.log

Tento příkaz zkontroluje / var / log / auth.soubor protokolu pro potenciální řádky, které obsahují informace o úlohách systému Linux CRON. The -i vlajka nám umožňuje být pružnější. Spuštěním tohoto příkazu se zobrazí všechny řádky se slovem CRON v autorizaci.log soubor.

39. Najděte informace o procesu


Další příkaz předvede, jak můžeme pomocí grepu vyhledat užitečné informace pro systémové procesy. Proces je spuštěná instance programu na strojích s Linuxem.

$ ps auxww | grep 'guake'

Tento příkaz vytiskne všechny informace související s hádej balík. Zkuste s jiným balíčkem, pokud hádej není ve vašem přístroji k dispozici.

40. Vyberte pouze platné adresy IP


Dříve jsme použili relativně jednodušší regulární výraz pro porovnávání IP adres z / etc / hosts soubor. Tento příkaz by však také odpovídal mnoha neplatným adresám IP, protože platné adresy IP mohou nabývat pouze hodnot z rozsahu (1–255) v každém ze svých čtyř kvadrantů.

$ egrep '\ b (25 [0-5] | 2 [0-4] [0-9] | [01]?[0-9] [0-9]?\.) 3 (25 [0-5] | 2 [0-4] [0-9] | [01]?[0-9] [0-9]?) '/ etc / hosts

Výše uvedený příkaz nevytiskne žádné neplatné adresy IP, například 999.999.999.999.

41. Hledat v komprimovaných souborech


Přední část zgrep příkazu Linux grep nám umožňuje nejlepší vyhledávání vzorů přímo v komprimovaných souborech. Pro lepší pochopení se krátce podívejte na následující fragmenty kódu.

$ gzip test.txt $ zgrep -i "ukázkový" test.txt.gz

Nejprve komprimujeme test.txt soubor pomocí gzip a poté pomocí zgrep pro vyhledání vzorku slova.

42. Počítat počet prázdných řádků


Počet prázdných řádků v souboru můžete snadno spočítat pomocí grep, jak ukazuje následující příklad.

$ grep -c "^ $" test.txt

Od té doby test.txt obsahuje pouze jeden prázdný řádek, tento příkaz vrátí 1. Prázdné řádky se shodují pomocí regulárního výrazu „^ $“ a jejich počet je vytištěn pomocí -C volba.

43. Najděte více vzorů


Doposud jsme se zaměřili na nalezení jediného vzoru. Nástroj grep také umožňuje uživatelům vyhledávat řádky s více vzory najednou. Podívejte se na níže uvedené příklady příkazů a podívejte se, jak to funguje.

$ grep -e 'sample' -e 'file' test.txt $ grep -e 'ukázkový' test.txt | grep -e 'soubor' $ grep -e 'ukázka \ | souborový test.txt

Všechny výše uvedené příkazy vytisknou řádky, které obsahují jak „vzorek“, tak „soubor“.

44. Porovnejte platné e-mailové adresy


Mnoho zkušených programátorů si ráda ověřuje vstupy uživatelů sami. Naštěstí je velmi snadné ověřit vstupní data, jako je IP a e-maily, pomocí regulárních výrazů grep. Následující příkaz bude odpovídat všem platným e-mailovým adresám.

$ grep -E -o "\ b [A-Za-z0-9._% + -] + @ [A-Za-z0-9.-] + \.[A-Za-z] 2,6 \ b "/ cesta / k / datům

Tento příkaz je extrémně efektivní a snadno odpovídá až 99% platných e-mailových adres. Pro urychlení procesu můžete použít egrep.

Různé příkazy grep


Obslužný program grep nabízí mnohem více užitečných kombinací příkazů, které umožňují další operace s daty. V této části pojednáváme o několika zřídka používaných, ale podstatných příkazech.

45. Vyberte vzory ze souborů


Vzory regulárního výrazu pro grep můžete z předdefinovaných souborů vybrat docela snadno. Použijte -F možnost.

$ echo "sample"> soubor $ grep -f test souboru.txt

Pomocí příkazu echo vytváříme vstupní soubor obsahující jeden vzor. Druhý příkaz ukazuje vstup do souboru pro grep.

46. Kontrolní kontexty


Kontext výstupu grepu můžete snadno ovládat pomocí možností -A, -B, a -C. Následující příkazy je zobrazují v akci.

$ grep -A2 'souborový' test.txt $ grep -B2 'soubor' test.txt $ grep -C3 'Linux' test.txt

První příklad ukazuje další 2 řádky po zápase, druhý příklad ukazuje předchozí 2 a poslední příklad ukazuje oba.

47. Potlačit chybové zprávy


The -s Možnost umožňuje uživatelům potlačit výchozí chybové zprávy zobrazené grepem v případě neexistujících nebo nečitelných souborů.

$ grep -s 'file' testování.Testování souboru „txt $ grep −−no-messages“.txt

Ačkoli není pojmenován žádný soubor testování.txt v mém pracovním adresáři grep nevydává pro tento příkaz žádnou chybovou zprávu.

48. Zobrazit informace o verzi


Nástroj grep je mnohem starší než samotný Linux a sahá až do počátků Unixu. Další příkaz použijte, pokud chcete získat informace o verzi grepu.

$ grep -V $ grep - verze

49. Zobrazit stránku nápovědy


Stránka nápovědy pro grep obsahuje souhrnný seznam všech dostupných funkcí. Pomáhá překonat mnoho problémů přímo z terminálu.

$ grep - help

Tento příkaz vyvolá stránku nápovědy pro grep.

50. Nahlédněte do dokumentace


Dokumentace grep je velmi podrobná a poskytuje důkladný úvod do dostupných funkcí a použití regulárních výrazů. Na stránce manuálu pro grep můžete použít níže uvedený příkaz.

$ man grep

Končící myšlenky


Protože můžete vytvořit libovolnou kombinaci příkazů pomocí robustních možností CLI grepu, je těžké zapouzdřit vše o příkazu grep do jediného průvodce. Naši redaktoři se však snažili načrtnout téměř každý praktický příklad grepu, který vám pomůže se s ním lépe seznámit. Doporučujeme procvičit co nejvíce z těchto příkazů a najít způsoby, jak začlenit grep do vašeho každodenního zpracování souborů. I když každý den můžete čelit novějším překážkám, je to jediný způsob, jak skutečně zvládnout příkaz Linux grep.

Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...
Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...