Príkaz Grep v systéme Linux

Grep Command Linux



Príkaz Grep (globálny tlač regulárnych výrazov) je najsilnejší a pravidelne používaný nástroj príkazového riadka systému Linux. Pomocou programu Grep môžete vyhľadávať užitočné informácie zadaním kritérií vyhľadávania. V zadanom súbore vyhľadá konkrétny vzor výrazu. Keď nájde zhodu, vytlačí všetky riadky súboru, ktoré zodpovedali zadanému vzoru. Hodí sa to, keď musíte filtrovať veľké súbory denníka.

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







Inštalácia programu Grep

Grep je nainštalovaný vo väčšine distribúcií Linuxu. V prípade, že vo vašom systéme chýba, môžete ho nainštalovať pomocou nasledujúceho postupu v Termináli:



$sudo apt-get nainštalovať uchopenie

Použitie Grep

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



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

Vyhľadajte súbory

Na vyhľadanie názvu súboru v adresári, ktorý obsahuje konkrétny reťazec, môžete použiť príkaz grep nasledujúcim spôsobom:





$ls -ten | uchopenie -ireťazec

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

$ls-ten| uchopenie–Itest

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



Vyhľadajte reťazec v súbore

Na vyhľadanie reťazca v konkrétnom súbore môžete použiť nasledujúcu syntax príkazu:

$uchopeniereťazec názov súboru

Napríklad na hľadanie reťazca test v súbore s názvom testovací súbor 1 , použili sme nasledujúci príkaz :

$uchopenietestovací súbor zamestnanca 1

Vyššie uvedený výstup vrátil vetu z testovací súbor 1 ktorý obsahuje reťazec zamestnanec .

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

Na vyhľadanie reťazca vo viacerých súboroch môžete použiť nasledujúcu syntax príkazu:

$uchopeniereťazec názov súboru1 názov súboru2

Napríklad na vyhľadanie reťazcového zamestnanca v našich dvoch súboroch testfile1 a testfile2 sme použili nasledujúci príkaz:

$uchopenietestovací súbor zamestnanca 1 testovací súbor 2

Vyššie uvedený príkaz vypíše všetky riadky, ktoré obsahujú reťazec zamestnanca zo súborov testfile1 a testfile2.

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

$uchopeniereťazec názov súboru*

Ak vezmeme vyššie uvedený príklad, v ktorom boli naše názvy súborov testfile1 a testfile2 , príkaz by bol:

$uchopenietestovací súbor zamestnancov*

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

Najčastejšie ste sa s tým stretli, keď hľadáte niečo pomocou grep, ale nedostanete výstup. Je to kvôli nesúladu prípadov pri hľadaní reťazca. Rovnako ako v našom prípade, 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ť príkazu grep, aby ignoroval prípad hľadaného reťazca, a to tak, že za príkaz grep použijete príznak –i:

$uchopenie–I názov súboru reťazca

Použitím príznaku –i príkaz vykoná 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 sa regulárny výraz používa správne, je veľmi efektívna v grep. 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ť zadávať celý riadok príkazom grep. Na tento účel je možné použiť nasledujúcu syntax.

$uchopeniepočiatočné kľúčové slovo.*koncový názov súboru kľúčového slova

Napríklad na vyhľadanie riadka v súbore s názvom testfile1, ktorý začína reťazcom toto a končí údajmi reťazca, sme použili nasledujúci príkaz:

$uchopenietoto.*dátový testovací súbor 1

Vytlačí celý riadok z testovací súbor 1 obsahujúci výraz (počiatočné kľúčové slovo toto a koncové údaje kľúčového slova).

Vytlačte určitý počet riadkov za/pred vyhľadávací reťazec

Môžete tiež zobraziť konkrétny počet riadkov v súbore pred/po zhode reťazca spolu so samotným zodpovedajúcim reťazcom. Na tento účel je možné použiť nasledujúcu syntax:

$uchopenie -TO <N.>reťazec názov súboru

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

Toto je napríklad náš vzorový súbor s názvom testovací súbor 2 .

Nasledujúci príkaz vygeneruje zodpovedajúci riadok obsahujúci reťazec zamestnanec , spolu s 2 riadkami za ním.

$uchopenie-TO2–I testovací súbor zamestnanca2

Podobne na zobrazenie N počtu riadkov pred zodpovedajúcim reťazcom v konkrétnom súbore použite nasledujúcu syntax:

$uchopenie -B <N.>reťazec názov súboru

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

$uchopenie -C <N.>reťazec názov súboru

Zvýraznenie vyhľadávania

Grep v predvolenom nastavení tlačí zhodné riadky, ale nezobrazuje, ktorá časť riadku sa zhoduje. Ak v grep použijete možnosť –color, zobrazí sa, kde sa vo vašom súbore zobrazujú obrábacie reťazce. Grep v predvolenom nastavení používa na zvýraznenie červenú farbu.

Na tento účel je možné použiť nasledujúcu syntax:

$uchopeniereťazec názov súboru-farba

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. Vracia iba počet zápasov, nie samotné zhody. Na tento účel je možné použiť nasledujúcu syntax:

$uchopenie–C názov súboru reťazca

Toto je náš ukážkový súbor, ktorý vyzerá takto:

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

Invertované vyhľadávanie

Niekedy chcete vykonať spätné vyhľadávanie, ktoré zobrazí všetky riadky okrem toho, ktoré zodpovedajú vstupu. Ak to chcete urobiť, jednoducho použite príznak –v a za ním príkaz grep:

$uchopenie–V názov súboru reťazca

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

$uchopenie–V testovacom súbore účtu3

Použitie Grepu s inými príkazmi

Grep je možné použiť aj na odfiltrovanie požadovaného výsledku z výstupu rôznych príkazov. Napríklad z apt - nainštalovaný zoznam Ak chcete nájsť iba balíky, ktoré boli nainštalované automaticky, môžete výsledok odfiltrovať pomocou príkazu grep nasledovne:

$výstižný-nainštalovanézoznam| uchopenieautomatické

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

$lscpu| uchopenieArchitektúra

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