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.