grep

Príkaz Grep v systéme Linux

Príkaz Grep v systéme Linux
Príkaz Grep (globálna tlač regulárneho výrazu) je najsilnejší a pravidelne používaný nástroj príkazového riadku v systéme Linux. Pomocou programu Grep môžete vyhľadávať užitočné informácie zadaním kritérií vyhľadávania. Vyhľadá konkrétny vzor výrazu v určenom súbore. Keď nájde zhodu, vytlačí všetky riadky súboru, ktoré sa zhodujú so zadaným vzorom. Príde to vhod, keď musíte filtrovať cez veľké súbory denníka.

V tomto článku vysvetlíme použitie utility grep na rôznych príkladoch. Debian 10 použijeme na vysvetlenie príkazov a metód uvedených v tomto článku.

Inštalácia Grep

Grep je nainštalovaný vo väčšine distribúcií Linuxu. Ak však vo vašom systéme chýba, môžete ho nainštalovať pomocou nasledujúcej metódy v Termináli:

$ sudo apt-get nainštalovať grep

Používanie Grep

Tu je základná syntax príkazu grep. Začína sa to grepom, nasledujú niektoré možnosti a kritériá vyhľadávania a potom sa to končí názvom súboru.

$ grep [možnosti] VZOR [SÚBOR ...]

Vyhľadajte súbory

Ak chcete vyhľadať názov súboru v adresári, ktorý obsahuje konkrétny reťazec, môžete použiť grep nasledujúcim spôsobom:

$ ls -l | grep -i “reťazec

Napríklad na vyhľadanie názvu súboru, ktorý obsahuje reťazec „test“, Príkaz by bol:

$ ls -l | grep -i test

Tento príkaz vypíše všetky súbory, ktoré obsahujú reťazec „test“.

Vyhľadajte reťazec v súbore

Ak chcete vyhľadať reťazec v konkrétnom súbore, môžete použiť nasledujúcu syntax príkazu:

$ grep “string” nazov suboru

Napríklad na vyhľadanie reťazca „test”V súbore s názvom testfile1, použili sme nasledujúci príkaz:

$ grep testovací súbor „zamestnanca“ 1

Vyššie uvedený výstup vrátil vetu z testfile1 ktorý obsahuje reťazec „zamestnanec“.

Vyhľadajte reťazec vo viacerých súboroch

Ak chcete vyhľadať reťazec vo viacerých súboroch, môžete použiť nasledujúcu syntax príkazu:

$ grep „reťazec“ názov súboru1 názov súboru2

Napríklad na vyhľadanie reťazca „zamestnanec“ v našich dvoch súboroch testfile1 a testfile2 sme použili nasledujúci príkaz:

$ grep “zamestnanec” testfile1 testfile2

Vyššie uvedený príkaz vypíše všetky riadky, ktoré obsahujú reťazec „zamestnanec“ z oboch súborov testfile1 a testfile2.

Zástupný znak môžete použiť aj vtedy, ak všetky názvy súborov začínajú rovnakým textom.

$ grep “string” nazov souboru *

Ako keby sme si vzali vyššie uvedený príklad, v ktorom boli naše názvy súborov testfile1 a testfile2 , príkaz by bol:

$ grep testovací súbor „zamestnanca“ *

Vyhľadajte reťazec v súbore ignorovaním veľkých a malých písmen reťazca

Najčastejšie ste sa stretli s tým, že keď niečo hľadáte pomocou grepu, ale nedostanete výstup. Stáva sa to kvôli nesúladu prípadov pri hľadaní reťazca. Rovnako ako v našom príklade, ak omylom použijeme „Zamestnanec" namiesto "zamestnanec„, Vráti sa nula, pretože náš súbor obsahuje reťazec„zamestnanec”Malými písmenami.

Môžete povedať grepu, aby ignoroval prípad hľadaného reťazca pomocou príznaku -i po grepe nasledovne:

$ grep -i „reťazcový“ názov súboru

Použitím príznaku -i vykoná príkaz vyhľadávanie bez rozlišovania malých a veľkých písmen a vráti všetky riadky obsahujúce reťazec „zamestnanec”V ňom bez zohľadnenia písmen sú veľké alebo malé písmená.

Hľadajte pomocou regulárneho výrazu

Ak je regulárny výraz správne použitý, je veľmi efektívnym prvkom grepu. Príkazom Grep môžete definovať regulárny výraz s počiatočným a koncovým kľúčovým slovom. Ak tak urobíte, nebudete musieť písať celý riadok pomocou príkazu grep. Na tento účel možno použiť nasledujúcu syntax.

$ grep “počiatočné kľúčové slovo.* končiace kľúčové slovo “názov súboru

Napríklad na vyhľadanie riadku v súbore s názvom testfile1, ktorý sa začína reťazcom „this“ a končí reťazcom „data“, sme použili nasledujúci príkaz:

$ grep „toto.* data “testfile1

Vytlačí celý riadok z testfile1 obsahujúce výraz (počiatočné kľúčové slovo „toto“ a končiace kľúčové slovo „údaje“).

Vytlačiť konkrétny počet riadkov za / pred hľadaným reťazcom

Môžete tiež zobraziť konkrétny počet riadkov v súbore pred / po zhode reťazcov spolu s príslušným reťazcom samotným. Na tento účel možno použiť nasledujúcu syntax:

$ grep -A „String“ názov súboru

Po priradení reťazca k zadanému súboru vrátane priradeného reťazca zobrazí N počet riadkov.

Toto je napríklad náš ukážkový súbor s názvom testfile2.

Nasledujúci príkaz vygeneruje zhodný riadok obsahujúci reťazec „zamestnanec”, Spolu s 2 riadkami po ňom.

$ grep -A 2 -i testovací súbor „zamestnanca “2

Podobne, ak chcete zobraziť N počet riadkov pred zhodným reťazcom v konkrétnom súbore, použite nasledujúcu syntax:

$ grep -B „String“ názov súboru

Ak chcete zobraziť N počet riadkov okolo reťazca v konkrétnom súbore, použite nasledujúcu syntax:

$ grep -C „String“ názov súboru

Zvýraznenie vyhľadávania

Grep predvolene tlačí zhodné riadky, ale neukazuje, ktorá časť riadku sa zhoduje. Ak použijete voľbu -color s grepom, zobrazí sa, kde sa vo vašom súbore nachádzajú obrábacie reťazce. Grep predvolene používa na zvýraznenie červenú farbu.

Na tento účel možno použiť nasledujúcu syntax:

$ grep "string" nazov souboru --color

Počítanie počtu zápasov

Ak chcete spočítať, koľkokrát sa konkrétne slovo objaví v konkrétnom súbore, môžete použiť voľbu grep s -c. Vráti iba počet zápasov, a nie samotné zápasy. Na tento účel možno použiť nasledujúcu syntax:

$ grep -c názov súboru „string“

Toto je náš vzorový súbor, ktorý vyzerá takto:

Nasleduje príklad príkazu, ktorý vrátil počet opakovaní slova spis sa objavil v súbore s názvom testfile3.

Obrátené vyhľadávanie

Niekedy chcete vykonať spätné vyhľadávanie, ktoré zobrazí všetky riadky okrem tých, ktoré sa zhodujú so vstupom. Ak to chcete urobiť, jednoducho použite príznak -v nasledovaný znakom grep:

$ grep -v „reťazcový“ názov súboru

Napríklad na zobrazenie všetkých riadkov v súbore testfile3 ktoré v nich neobsahujú slovo „účet“, použili sme nasledujúci príkaz:

$ grep -v „účet“ testfile3

Používanie Grepu s inými príkazmi

Grep je možné použiť aj na odfiltrovanie požadovaného výsledku z rôznych výstupov príkazov. Napríklad z „zoznam apt-nainštalovaný ” príkazový výstup, chcete vyhľadať iba balíčky, ktoré boli nainštalované automaticky, môžete výsledok odfiltrovať pomocou grepu nasledovne:

$ apt - nainštalovaný zoznam grep automatické

Podobne lscpu poskytuje podrobné informácie o CPU. Ak vás zaujímajú iba informácie týkajúce sa architektúry CPU, môžete ich odfiltrovať pomocou nasledujúceho príkazu:

$ lscpu | grep Architektúra

V tomto článku sme popísali niekoľko príkladov, ktoré vám pomôžu porozumieť príkazom grep a ich použitiu v rôznych podmienkach. Silné stlačenie príkazu grep vám môže ušetriť veľa času, ak sa potrebujete pozrieť na veľké konfiguračné súbory alebo súbory denníka a prehľadávať pomocou nich užitočné informácie.

Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...