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–ItestTento 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úboruNaprí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 1Vyšš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úboru2Naprí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 2Vyšš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ťazcaPouž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 slovaNaprí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 1Vytlačí 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úboruPo 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 zamestnanca2Podobne 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úboruAk 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úboruZvý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-farbaPočí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ťazcaToto 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ťazcaNaprí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 účtu3Použ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úraV 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.