Príkazy A-Z

50 Produktívny a praktický príkaz grep pre nadšencov systému Linux

50 Produktívny a praktický príkaz grep pre nadšencov systému Linux

Nástroj grep v systéme Linux a ďalších systémoch podobných systému Unix je jedným z najsilnejších nástrojov príkazového riadku, aké boli kedy vyvinuté. Datuje sa do ed príkazu g / re / p a vytvoril ho legendárny Ken Thompson. Ak ste ostrieľaným používateľom systému Linux, určite poznáte dôležitosť regulárnych výrazov pri spracovaní súborov. Mnoho začínajúcich používateľov o nich však jednoducho nemá ani potuchy. Často vidíme, že používateľom je používanie týchto techník nepríjemné. Väčšina príkazov grep však nie je taká zložitá. Grep ľahko ovládnete, ak mu dáte nejaký čas. Ak sa chcete stať linuxovým guru, odporúčame vám, aby ste tento nástroj využili pri každodenných prácach na počítači.

Základné príkazy grep pre moderných používateľov systému Linux


Jednou z najkrajších vecí na príkaze Linux grep je, že ho môžete používať so všetkým možným. Môžete grepovať pre vzory priamo v súboroch alebo z vášho štandardného výstupu. Umožňuje používateľom prepojiť výstup iného príkazu s grepom a vyhľadaním konkrétnych informácií. Nasledujúce príkazy načrtnú 50 takýchto príkazov.

Demo súbory na ilustráciu príkazov grep systému Linux


Pretože obslužný program Linux grep funguje na súboroch, načrtli sme niektoré súbory, ktoré môžete nacvičiť. Väčšina distribúcií systému Linux by mala obsahovať niektoré súbory slovníka v adresári / usr / share / dict. Americko-anglický súbor, ktorý sa tu nachádza, sme použili na niektoré naše demonštračné účely. Vytvorili sme tiež jednoduchý textový súbor obsahujúci nasledujúce.

toto je ukážkový súbor, ktorý obsahuje zbierku riadkov na demonštráciu rôznych príkazov grep systému Linux

Pomenovali sme to test.TXT a použili v mnohých grep príkladoch. Môžete skopírovať text odtiaľto a na precvičenie použiť rovnaký názov súboru. Ďalej sme tiež využili súbor / etc / passwd.

Základné grep príklady


Pretože príkaz grep umožňuje používateľom vyhrabať informácie pomocou množstva kombinácií, začínajúci používatelia sú často zmätení s ich použitím. Ukazujeme niekoľko základných grepových príkladov, ktoré vám pomôžu oboznámiť sa s týmto nástrojom. Pomôže vám to naučiť sa v budúcnosti pokročilejšie príkazy.

1. Vyhľadajte informácie v jednom súbore


Jedným zo základných použití grepu v Linuxe je vyhľadanie riadkov obsahujúcich konkrétne informácie zo súborov. Jednoducho zadajte vzor a za ním názov súboru, ako je uvedené nižšie.

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

Prvý príklad zobrazí všetky riadky obsahujúce root v súbore / etc / passwd. Druhý príkaz zobrazí všetky také riadky, ktoré obsahujú vaše používateľské meno.

2. Vyhľadajte informácie vo viacerých súboroch


Môžete použiť grep na tlač riadkov obsahujúcich konkrétne vzory z viac ako jedného súboru súčasne. Jednoducho zadajte všetky názvy súborov oddelené medzerami za vzorom. Skopírovali sme test.TXT a vytvoril ďalší súbor obsahujúci rovnaké riadky, ale pomenovaný test1.TXT.

$ cp test.txt test1.test súboru txt $ grep.txt test1.TXT

Teraz grep vytlačí všetky riadky obsahujúce súbor z oboch súborov.

3. Vytlačiť iba zodpovedajúcu časť


V predvolenom nastavení grep zobrazí celý riadok obsahujúci vzor. Tento výstup môžete potlačiť a povedať grepu, aby zobrazil iba zhodnú časť. Grep teda bude vydávať iba zadané vzory, ak existujú.

$ grep -o $ USER / etc / passwd $ grep - iba zodpovedajúce $ USER / etc / passwd

Tento príkaz vygeneruje hodnotu $ USER koľkokrát sa s tým grep stretne. Ak nenájdete zhodu, výstup bude prázdny a grep sa ukončí.

4. Ignorovať porovnávanie prípadov


V predvolenom nastavení bude grep vyhľadávať daný vzor citlivým spôsobom. Používateľ si niekedy nemusí byť istý prípadom vzoru. Môžete povedať grepu, aby v takýchto prípadoch ignoroval veľkosť vzoru, ako je to demonštrované nižšie.

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

Týmto sa vráti ďalší riadok výstupu v mojom termináli. Rovnako by to malo byť aj vo vašom prístroji. Posledný príkaz je zastaraný, takže ho nepoužívajte.

5. Invertovať zodpovedajúce grepové vzory


Nástroj grep umožňuje používateľom invertovať zhodu. To znamená, že grep vytlačí všetky riadky, ktoré neobsahujú daný vzor. Rýchle zobrazenie nájdete v príkaze uvedenom nižšie.

$ grep -v test súboru.txt $ grep - test súborov s inverznou zhodou.TXT

Vyššie uvedené príkazy sú ekvivalentné a tlačia iba tie riadky, ktoré neobsahujú súbor.

6. Priraďte iba celé slová


Obslužný program grep vytlačí akýkoľvek riadok obsahujúci vzor. Takže tiež vytlačí riadky, ktoré majú vzor vo vnútri ľubovoľných slov alebo viet. Tieto hodnoty budete často chcieť zahodiť. Môžete to ľahko urobiť pomocou možnosti -w, ako je uvedené nižšie.

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

Ak ich budete prevádzkovať jeden po druhom, uvidíte ten rozdiel. V mojom systéme prvý príkaz vráti 5 riadkov, zatiaľ čo druhý príkaz iba dva.

7. Spočítajte počet zápasov


Často môžete jednoducho požadovať počet nájdených zhôd pomocou nejakého vzoru. The -c v takýchto situáciách je veľmi užitočná. Keď sa použije, grep vráti namiesto zhody riadkov počet zhôd. Tento príznak sme pridali k vyššie uvedeným príkazom, aby sme vám pomohli vizualizovať, ako to funguje.

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

Príkazy vrátia 5, respektíve 2.

8. Zobraziť číslo riadku


Môžete dať pokyn grepu, aby zobrazil čísla riadkov, kde sa našla zhoda. Využíva index založený na 1, kde prvý riadok súboru je riadok číslo 1 a desiaty riadok je riadok číslo 10. Pozrite sa na nasledujúce príkazy, aby ste pochopili, ako to funguje.

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

Oba vyššie uvedené príkazy vytlačia v americko-anglickom slovníku riadky, ktoré obsahujú slovo cat.

9. Potlačiť predpony názvu súboru


Ak znova spustíte príklady druhého príkazu, všimnete si, že grep prefixuje výstup s názvami súborov. Možno ich budete chcieť ignorovať alebo úplne vynechať. Nasledujúce príkazy Linux grep to ilustrujú za vás.

$ grep -h test súboru.txt test1.txt $ grep - test súboru bez názvu súboru.txt test1.TXT

Oba vyššie uvedené príkazy sú ekvivalentné, takže si môžete vybrať, čo chcete. Vrátia iba riadky so zhodným vzorom, nie názvy súborov.

10. Zobraziť iba predpony názvu súboru


Na druhej strane, niekedy môžete chcieť iba tie názvy súborov, ktoré obsahujú nejaký vzor. Môžete použiť -l možnosť. Dlhá forma tejto možnosti je -súbory so zhodami.

$ grep -l mačka / usr / share / dict / * - anglicky $ grep - súbory so zhodami cat / usr / share / dict / * - anglicky

Oba vyššie uvedené príkazy vytlačia názvy súborov, ktoré obsahujú vzor kat. Ukazuje americko-anglický a britsko-anglický slovník ako výstup grepu v mojom termináli.

11. Čítajte súbory rekurzívne


Môžete povedať grepu, aby rekurzívne čítal všetky súbory v adresári pomocou znaku -r alebo -rekurzívna možnosť. Týmto sa vytlačia všetky riadky, ktoré obsahujú zhodu, a predpona nich bude s názvami súborov, kde boli nájdené.

$ grep -r -w mačka / usr / zdieľanie / diktát

Tento príkaz vygeneruje všetky súbory, ktoré v ňom obsahujú slovo mačka, spolu s ich názvami súborov. Používame umiestnenie / usr / share / dict, pretože už obsahuje viac súborov slovníka. The -R túto možnosť je možné použiť na povolenie grepu prechádzať symbolické odkazy.

12. Zobraziť zhody s celým vzorom


Môžete tiež dať pokyn grepu, aby zobrazil iba tie zhody, ktoré obsahujú presnú zhodu v celom riadku. Napríklad nasledujúci príkaz vygeneruje riadky, ktoré obsahujú iba slovo cat.

$ grep -r -x mačka / usr / share / dict / $ grep -r --line-regexp mačka / usr / share / dict /

Jednoducho vrátia tri riadky, ktoré v mojich slovníkoch obsahujú iba mačku. Môj Ubuntu 19.10 má v adresári / dict tri súbory obsahujúce slovo cat v jednom riadku.

Regulárne výrazy v Linuxe grep Command


Jednou z najpútavejších vlastností grepu je jeho schopnosť pracovať so zložitými regulárnymi výrazmi. Videli sme iba niekoľko základných grepových príkladov ilustrujúcich mnoho z jeho možností. Schopnosť spracovávať súbory na základe regulárnych výrazov je však oveľa náročnejšia. Pretože regulárne výrazy vyžadujú dôkladné technické štúdium, zostaneme pri jednoduchých príkladoch.

13. Vyberte Zápasy na začiatku


Môžete použiť grep na určenie zhody iba na začiatku riadku. Toto sa nazýva ukotvenie vzoru. Budete musieť použiť kryt „^“ prevádzkovateľ na tento účel.

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

Vyššie uvedený príkaz vytlačí všetky riadky v americko-anglickom slovníku Linuxu, ktoré začínajú výrazom cat. Až do tejto časti nášho sprievodcu sme úvodzovky nepoužívali na špecifikáciu svojich vzorov. Teraz ich však použijeme a odporúčame vám, aby ste ich tiež používali.

14. Na konci vyberte položku Zhody


Podobne ako v predchádzajúcom príkaze, môžete svoj vzor ukotviť aj tak, aby zodpovedal riadkom obsahujúcim vzor na konci. Skontrolujte nasledujúci príkaz, aby ste pochopili, ako to funguje v systéme Linux grep.

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

Tento príkaz vytlačí všetky riadky, ktoré končia rybou. Všimnite si, ako sme v tomto prípade použili symbol $ na konci nášho vzoru.

15. Priraďte jeden znak


Pomôcka grep systému Unix umožňuje používateľom porovnávať ľubovoľné jednotlivé znaky ako súčasť vzoru. Bodka „.„ operátor používa na tento účel. Pre lepšie pochopenie si pozrite nasledujúce príklady.

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

Tento príkaz vytlačí všetky riadky obsahujúce tri znakové slová začínajúce písmenom c a končiace písmenom t. Ak vynecháte -X voľba, výstup bude skutočne veľký, pretože grep zobrazí všetky riadky, ktoré majú ľubovoľnú kombináciu týchto znakov. Môžete použiť dvojité určiť dva náhodné znaky a podobne.

16. Zhoda zo sady znakov


Môžete si tiež vybrať zo sady znakov ľahko pomocou zátvoriek. Povie grep, aby vybral znaky na základe niektorých kritérií. Na určenie týchto kritérií budete zvyčajne používať regulárne výrazy.

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

Prvý príklad vytlačí všetky riadky v americko-anglickom slovníku, ktoré obsahujú vzor c, za ktorým nasleduje jedna samohláska, a znak t. Nasledujúci príklad vytlačí všetky presné slová, ktoré obsahujú m, za ktorými nasleduje samohláska a potom n.

17. Zhoda z radu postáv


Nasledujúce príkazy ukážu, ako môžete pomocou grepu porovnávať z radu znakov. Vyskúšajte príkazy sami a uvidíte, ako to funguje.

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

Prvý príklad vytlačí všetky riadky, ktoré začínajú akýmkoľvek veľkým písmenom. Druhý príkaz zobrazuje iba tie riadky, ktoré končia veľkým písmenom.

18. Vynechať znaky vo vzorkách


Niekedy budete možno chcieť hľadať vzory, ktoré neobsahujú nejaký konkrétny znak. V nasledujúcom príklade si ukážeme, ako to urobiť pomocou grepu.

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

Prvý príkaz zobrazí všetky slová končiace na okrem kat. The [^ c] povie grepu, aby vynechal znak c z jeho hľadania. Druhý príklad hovorí grepu, aby zobrazil všetky slová, ktoré končia samohláskou, za ktorou nasleduje t a neobsahuje c.

19. Zoskupte znaky vo vnútri vzoru


[] Umožňuje určiť iba jednu znakovú sadu. Aj keď na zadanie ďalších znakov môžete použiť viac súprav zátvoriek, nie je to vhodné, ak už viete, o ktoré skupiny znakov máte záujem. Našťastie môžete použiť () na zoskupenie viacerých znakov vo vašich vzorkách.

$ grep -E "(kopírovanie)" / usr / zdieľanie / dict / americko-anglické $ egrep "(kopírovanie)" / usr / zdieľanie / dict / americko-anglické

Prvý príkaz vydá všetky riadky, ktoré majú v sebe kópiu skupiny znakov. The -E vlajka je povinná. Ak chcete tento príznak vynechať, môžete použiť druhý príkaz egrep. Je to jednoducho rozšírený front-end pre grep.

20. Zadajte voliteľné znaky do vzoru


Pomôcka grep tiež umožňuje používateľom určiť pre svoje vzory voliteľné znaky. Budete musieť použiť „?“ symbol pre toto. Čokoľvek pred týmto znakom bude vo vašom vzore voliteľné.

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

Tento príkaz vytlačí slovo komunista popri všetkých riadkoch v slovníku, ktorý v nich obsahuje nist. Pozrite sa, ako -E tu sa používa možnosť. Umožňuje grepu vykonávať zložitejšie alebo rozšírené porovnávanie vzorov.

21. Zadajte opakovania do vzoru


Môžete určiť, koľkokrát je potrebné vzor spárovať pre určité príkazy grep. Nasledujúce príkazy vám ukážu, ako zvoliť počet znakov v triede pre vzory grep.

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

Prvý príklad vytlačí všetky riadky, ktoré obsahujú tri samohlásky, zatiaľ čo posledný príklad vytlačí všetky riadky, ktoré obsahujú c, za ktorými nasledujú 2 samohlásky a potom t.

22. Zadajte jedno alebo viac opakovaní


Môžete tiež použiť „+“ operátor zahrnutý v rozšírenej množine funkcií grepu na zadanie zhody raz alebo viackrát. Skontrolujte nasledujúce príkazy, aby ste zistili, ako to funguje v príkaze Linux grep.

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

Prvý príkaz vytlačí, koľkokrát sa grep stretne s jednou alebo viacerými po sebe nasledujúcimi samohláskami. A druhý príkaz ukazuje, koľko riadkov obsahuje tri za sebou nasledujúce samohlásky. Mala by existovať veľká rezerva rozdielu.

23. Zadajte dolnú hranicu opakovaní


Pre počet opakovaní zápasu môžete zvoliť hornú aj dolnú hranicu. Nasledujúce príklady demonštrujú, ako zvoliť dolné hranice v akcii.

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

Použili sme egrep namiesto grep -E pre vyššie uvedený príkaz. Vyberie všetky riadky, ktoré obsahujú 3 alebo viac za sebou nasledujúcich samohlások.

24. Zadajte hornú hranicu opakovaní


Rovnako ako pri dolných hraniciach môžete tiež povedať grep, koľkokrát sa má najviac zhodovať s určitými znakmi. Nasledujúci príklad zodpovedá všetkým riadkom v americko-anglickom slovníku, ktorý obsahuje až 3 samohlásky.

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

Používateľom odporúčame, aby pre tieto rozšírené funkcie používali egrep, pretože je v dnešnej dobe o niečo rýchlejší a skôr konvenčný. Všimnite si umiestnenie čiarky „,“ symbol v dvoch vyššie uvedených príkazoch.

25. Zadajte hornú a dolnú hranicu


Obslužný program grep tiež umožňuje používateľom zvoliť súčasne hornú aj dolnú hranicu opakovania zhody. Nasledujúci príkaz hovorí grep, aby zodpovedal všetkým slovám obsahujúcim minimálne dve a najviac štyri za sebou nasledujúce samohlásky.

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

Týmto spôsobom môžete určiť hornú aj dolnú hranicu súčasne.

26. Vyberte Všetky znaky


Môžete použiť zástupný znak „*“ na výber všetkých nulových alebo viacerých výskytov triedy znakov vo vašich grepových vzorkách. Pozrite sa na nasledujúci príklad, aby ste pochopili, ako to funguje.

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

Prvý príklad vytlačí slovo kolekcia, pretože je to jediné slovo, ktoré sa zhoduje s výrazom „zhromaždiť“ jeden alebo viackrát v test.TXT spis. Posledný príklad sa zhoduje so všetkými riadkami obsahujúcimi c, za ktorými nasleduje ľubovoľný počet samohlások, potom t v americko-anglickom slovníku Linuxu.

27. Alternatívne regulárne výrazy


Pomôcka grep umožňuje používateľom určiť striedavé vzory. Môžete použiť „|“ znak pre príkaz grep na výber jedného z dvoch vzorov. Tento znak je v terminológii POSIX známy ako operátor infix. Pozrite sa na nasledujúci príklad, aby ste pochopili jeho účinok.

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

Tento príkaz povie grep, aby zodpovedal všetkým riadkom, ktoré obsahujú buď 2 po sebe nasledujúce veľké samohlásky alebo malé samohlásky.

28. Vyberte Vzor pre zladenie alfanumerických znakov


Alfanumerické vzory obsahujú číslice aj písmená. Nasledujúce príklady demonštrujú, ako pomocou príkazu grep vybrať všetky riadky, ktoré obsahujú alfanumerické znaky.

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

Oba vyššie uvedené príkazy robia to isté. Hovoríme grep, aby zodpovedal všetkým riadkom obsahujúcim tri po sebe idúce kombinácie znakov 0-9, A-Z a a-z. Druhý príklad nás však zachráni pred tým, aby sme sami písali špecifikátor vzoru. Toto sa nazýva špeciálny výraz a grep ich ponúka niekoľko.

29. Uniknite špeciálnym znakom


Doteraz sme používali veľa špeciálnych znakov ako „$“, „^“ a „|“ na definovanie rozšírených regulárnych výrazov. Čo však v prípade, že potrebujete zladiť niektorú z týchto postáv vo vašom vzore. Našťastie to už vývojári grepu mysleli a umožňujú uniknúť týmto špeciálnym znakom pomocou spätného lomítka „\“.

$ egrep "\ -" / etc / passwd

Vyššie uvedený príkaz sa zhoduje so všetkými riadkami súboru / etc / passwd súbor proti pomlčke „-“ znak a vytlačí ich. Týmto spôsobom môžete uniknúť z akýchkoľvek ďalších špeciálnych znakov pomocou spätnej lomky.

30. Opakujte grepové vzory


Už ste použili „*“ zástupný znak na výber reťazcov znakov vo vašich vzorkách. Nasledujúci príkaz vám ukáže, ako vytlačiť všetky riadky, ktoré začínajú zátvorkami, a obsahujú iba písmená a jednotlivé medzery. Použijeme „*“ urobiť toto.

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

Teraz pridajte do svojho ukážkového súboru niekoľko riadkov uzavretých v zátvorkách test.TXT a spustite tento príkaz. Tento príkaz by ste už mali dostať na vedomie.

Príkazy Linux grep v každodenných výpočtoch


Jednou z najlepších vecí na grepe je jeho univerzálna použiteľnosť. Tento príkaz môžete použiť na odfiltrovanie základných informácií pri spustení dôležitých príkazov terminálu systému Linux. Aj keď v nasledujúcej časti nájdete prehľad niektorých z nich, základné princípy môžete uplatniť kdekoľvek.

31. Zobraziť všetky podadresáre


Nasledujúci príkaz ilustruje, ako môžeme použiť grep na priradenie všetkých priečinkov v adresári. Príkaz ls -l používame na zobrazenie obsahu adresára v štandardnom výstupe a vyrezanie zodpovedajúcich riadkov pomocou grep.

$ ls -l ~ | grep "drw"

Pretože všetky adresáre v Linuxe obsahujú vzor drw na začiatku ich používame ako vzor pre grep.

32. Zobraziť všetky súbory MP3


Nasledujúci príkaz ukazuje, ako používať grep na vyhľadanie súborov mp3 v počítači so systémom Linux. Tu znova použijeme príkaz ls.

$ ls / cesta / do / hudby / adresára / | grep ".mp3 "

najprv, je vytlačí obsah vášho hudobného adresára na výstup a potom grep bude zodpovedať všetkým riadkom, ktoré obsahujú .mp3 v nich. Nebudete vidieť výstup ls, pretože sme tieto údaje poslali potrubím na grep priamo.

33. Vyhľadávať text v súboroch


Môžete tiež použiť grep na vyhľadanie konkrétnych textových vzorov v jednom súbore alebo zbierke súborov. Predpokladajme, že chcete vyhľadať všetky súbory programu C, ktoré obsahujú text hlavný v nich. Nerobte si z toho starosti, môžete to kedykoľvek pozdraviť.

$ grep -l 'main' / cesta / k / súborom / *.c

V predvolenom nastavení by mal grep farebne odlíšiť zhodnú časť, aby ste si mohli ľahšie vizualizovať svoje nálezy. Ak to však na vašom stroji s Linuxom zlyhá, skúste pridať -farba možnosť na váš príkaz.

34. Vyhľadajte sieťových hostiteľov


Súbor / etc / hosts obsahuje informácie ako IP hostiteľa a názov hostiteľa. Môžete použiť grep na vyhľadanie konkrétnych informácií z tohto záznamu pomocou nižšie uvedeného príkazu.

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

Neľakajte sa, ak nedostanete vzor hneď. Ak to rozdelíte jeden po druhom, je to veľmi ľahké pochopiť. Tento vzor v skutočnosti vyhľadáva všetky zhody v rozsahu 0.0.0.0 a 999.999.999.999. Môžete tiež vyhľadávať pomocou názvov hostiteľov.

35. Nájdite nainštalované balíčky


Linux leží na vrchole niekoľkých knižníc a balíkov. Nástroj príkazového riadku dpkg umožňuje správcom ovládať balíky na distribúciách Linuxu založených na Debiane, ako je Ubuntu. Ďalej uvidíte, ako používame grep na odfiltrovanie základných informácií o balíku pomocou dpkg.

$ dpkg - zoznam | grep "chróm"

Prináša niekoľko užitočných informácií v mojom stroji vrátane čísla verzie, architektúry a popisu prehliadača Google Chrome. Môžete ho použiť na vyhľadanie informácií o balíkoch nainštalovaných vo vašom systéme podobne.

36. Nájdite dostupné obrázky systému Linux


Na nájdenie všetkých dostupných obrazov systému Linux ešte raz používame obslužný program grep s príkazom dpkg. Výstup tohto príkazu sa bude v rôznych systémoch veľmi líšiť.

$ dpkg - zoznam | grep linux-image

Tento príkaz jednoducho vytlačí výsledok dpkg -list a načíta ho na grep. Potom sa zhoduje so všetkými riadkami pre daný vzor.

37. Nájdite informácie o modeli pre CPU


Nasledujúci príkaz ukazuje, ako nájsť informácie o modeli procesora v systémoch založených na systéme Linux pomocou príkazu grep.

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

V prvom príklade sme vložili výstup z cat / proc / cpuinfo do grepu a porovnali všetky riadky obsahujúce slovný model. Avšak od / proc / cpuinfo je sám o sebe súbor, môžete ho priamo použiť ako grep, ako ukazuje posledný príklad.

38. Nájdite informácie z denníka


Systém Linux ukladá všetky druhy protokolov do adresára / var pre nás správcov systému. Z týchto súborov protokolu môžete ľahko získať užitočné informácie. Nasledujúci príkaz ukazuje jednoduchý jednoduchý príklad.

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

Tento príkaz skontroluje / var / log / auth.protokolový súbor pre potenciálne riadky, ktoré obsahujú informácie o úlohách systému Linux CRON. The -i vlajka nám umožňuje byť flexibilnejší. Spustením tohto príkazu sa zobrazia všetky riadky so slovom CRON v autor.logovací súbor.

39. Nájdite informácie o procese


Nasledujúci príkaz predvedie, ako môžeme pomocou grep vyhľadať užitočné informácie pre systémové procesy. Proces je bežiaca inštancia programu v strojoch so systémom Linux.

$ ps auxww | grep 'guake'

Tento príkaz vytlačí všetky informácie týkajúce sa súboru hádať balíček. Vyskúšajte nejaký iný balíček, ak hádať nie je vo vašom prístroji k dispozícii.

40. Vyberte možnosť Iba platné adresy IP


Predtým sme na porovnávanie adries IP z adresy URL používali relatívne jednoduchší regulárny výraz / etc / hostitelia spis. Tento príkaz by sa však zhodoval aj s mnohými neplatnými adresami IP, pretože platné adresy IP môžu nadobúdať iba hodnoty z rozsahu (1 - 255) v každom z ich štvorkvadrantov.

$ 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

Vyššie uvedený príkaz nevytlačí žiadne neplatné adresy IP, napríklad 999.999.999.999.

41. Hľadať vo vnútri komprimovaných súborov


Front-end príkazu zgrep v systéme Linux grep umožňuje špičkové vyhľadávanie vzorov priamo v komprimovaných súboroch. Pre lepšie pochopenie si rýchlo pozrite nasledujúce útržky kódu.

$ test gzip.txt $ zgrep -i „ukážkový“ test.TXT.gz

Najskôr komprimujeme test.TXT súbor pomocou gzip a potom pomocou zgrep na jeho vyhľadanie vzorky slova.

42. Počet Počet prázdnych riadkov


Počet prázdnych riadkov v súbore môžete ľahko spočítať pomocou grep, ako je to znázornené v nasledujúcom príklade.

$ grep -c test „^ $“.TXT

Odkedy test.TXT obsahuje iba jeden prázdny riadok, tento príkaz vráti 1. Prázdne riadky sa zhodujú pomocou regulárneho výrazu „^ $“ a ich počet sa vytlačí využitím -c možnosť.

43. Nájdite viac vzorov


Doteraz sme sa zameriavali na hľadanie jedného vzoru. Pomôcka grep tiež umožňuje používateľom vyhľadávať riadky s viacerými vzormi súčasne. Pozrite sa na nižšie uvedené príklady príkazov a uvidíte, ako to funguje.

$ grep -e 'ukážka' -e 'súboru' test.txt $ grep -e 'sample' test.txt | grep -e 'súbor' $ grep -e 'vzorka \ | súborový test.TXT

Všetky vyššie uvedené príkazy vytlačia riadky, ktoré obsahujú „ukážku“ aj „súbor“.

44. Priraďte platné e-mailové adresy


Mnoho skúsených programátorov si rád overuje vstupy používateľov sami. Našťastie je veľmi ľahké overiť vstupné údaje, ako je IP a e-maily, pomocou regulárnych výrazov grep. Nasledujúci príkaz sa bude zhodovať so všetkými platnými e-mailovými adresami.

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

Tento príkaz je mimoriadne efektívny a v pohode zodpovedá až 99% platných e-mailových adries. Na urýchlenie procesu môžete použiť egrep.

Rôzne grep príkazy


Obslužný program grep ponúka oveľa viac užitočných kombinácií príkazov, ktoré umožňujú ďalšie operácie s údajmi. V tejto časti diskutujeme o niekoľkých zriedka používaných, ale základných príkazoch.

45. Vyberte vzory zo súborov


Svoje vzory regulárnych výrazov pre grep môžete z preddefinovaných súborov zvoliť pomerne ľahko. Použi -f možnosť.

$ echo "sample"> súbor $ grep -f test súboru.TXT

Pomocou príkazu echo vytvárame vstupný súbor obsahujúci jeden vzor. Druhý príkaz demonštruje vstup do súboru pre grep.

46. Kontrolné kontexty


Pomocou týchto možností môžete ľahko ovládať kontext výstupu grepu -A, -B, a -C. Nasledujúce príkazy ich zobrazujú v akcii.

$ grep -A2 'súborový' test.txt $ grep -B2 'test' testu.txt $ grep -C3 'Linux' test.TXT

Prvý príklad ukazuje ďalšie 2 riadky po zápase, druhý príklad ukazuje predchádzajúce 2 a posledný príklad zobrazuje oba.

47. Potlačiť chybové správy


The -s Táto možnosť umožňuje používateľom potlačiť predvolené chybové správy, ktoré zobrazuje grep v prípade neexistujúcich alebo nečitateľných súborov.

$ grep -s testovanie „súboru“.Testovanie „súboru“ txt $ grep −−no-messages.TXT

Aj keď tam nie je pomenovaný žiadny súbor testovanie.TXT v mojom pracovnom adresári grep nevydáva pre tento príkaz žiadne chybové hlásenie.

48. Zobraziť informácie o verzii


Nástroj grep je oveľa starší ako samotný Linux a pochádza z počiatkov Unixu. Ak chcete získať informácie o verzii grepu, použite nasledujúci príkaz.

$ grep -V $ grep - verzia

49. Zobraziť stránku pomocníka


Stránka pomocníka pre grep obsahuje súhrnný zoznam všetkých dostupných funkcií. Pomáha prekonať veľa problémov priamo z terminálu.

$ grep - pomoc

Tento príkaz vyvolá stránku pomocníka pre grep.

50. Nahliadnite do dokumentácie


Dokumentácia grep je mimoriadne podrobná a poskytuje dôkladný úvod do dostupných funkcií a používania regulárnych výrazov. Môžete sa pozrieť na manuálnu stránku grep pomocou nižšie uvedeného príkazu.

$ man grep

Končiace myšlienky


Pretože môžete vytvoriť ľubovoľnú kombináciu príkazov pomocou robustných možností CLI grepu, je ťažké zapuzdriť všetko o príkaze grep do jediného sprievodcu. Naši redaktori sa však pokúsili čo najlepšie načrtnúť takmer všetky praktické ukážky, ktoré vám pomôžu lepšie sa s ním oboznámiť. Navrhujeme vám precvičiť čo najviac z týchto príkazov a nájsť spôsoby, ako začleniť grep do vášho každodenného spracovania súborov. Aj keď každý deň môžete čeliť novším prekážkam, je to jediný spôsob, ako skutočne zvládnuť príkaz Linux grep.

Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...
Hry Najlepšie linuxové distribúcie pre hry v roku 2021
Najlepšie linuxové distribúcie pre hry v roku 2021
Operačný systém Linux prešiel dlhou cestou od svojho originálneho, jednoduchého serverového vzhľadu. Tento OS sa za posledné roky nesmierne vylepšil a...