logo

Príkaz Grep v systéme Linux/Unix s príkladmi

Príkaz „grep“ znamená 'globálna tlač regulárneho výrazu' . Príkaz grep filtruje obsah súboru, čo uľahčuje naše vyhľadávanie.

Je to pomôcka príkazového riadka na vyhľadávanie v skupinách údajov s obyčajným textom pre riadky, ktoré sú rovnaké ako regulárny výraz. Názov 'grip' pochádza z príkazu, t.j. ed, ktorý obsahuje rovnaký účinok. Pôvodne bol grep navrhnutý pre operačný systém Unix, ale neskôr sa stal dostupným pre každý systém podobný Unixu a pre niekoľko ďalších, ako je OS 9.

Filter grep nájde súbor pre špecifický vzor znakov a zobrazí každý riadok, ktorý tento vzor obsahuje. Znaky by mali byť v úvodzovkách, ak sa vyskytujú v parametri vzoru so špeciálnym významom pre shell. Zvyčajne musíme celý vzor uzavrieť do úvodzoviek, ak parameter vzoru nie je bežný reťazec.

Vo výraze ako [a-z] znamienko mínus (-) cml opisuje rozsah založený na aktuálnom poradí zoraďovania. Poradie zoraďovania môže špecifikovať ekvivalentné triedy v rozsahoch znakov na použitie. Príkaz grep predpokladá stdin, keď nie sú uvedené žiadne súbory.

mapa iterácie java

Vzor sa nazýva regulárny výraz, ktorý sa nachádza v súbore. Vzorom sú obmedzené regulárne výrazy vo formáte príkazu egrep alebo ed. Príkaz grep aplikuje solídny nedeterministický algoritmus. Hodí sa, keď potrebujeme filtrovať veľké protokolové súbory.

Stručná história grep

Predtým, ako bol grep pomenovaný, bol dôverný nástroj špecifikovaný spoločnosťou Ken Thompson nájsť súbory pre niekoľko vzorov. Neznáma o svojej existencii, Doug Mcllroy požiadal Thompsona, aby špecifikoval takúto funkciu. Odpovedal, že by cez noc myslel na takýto nástroj. Thompson robil vylepšenia a opravoval močiare asi jednu hodinu vo svojom programe známom ako 's' (alebo hľadať). Nasledujúci deň predložil funkciu Mcllroyovi, ktorý povedal, že je to to isté, čo chcel. Thompsonova správa môže opísať presvedčenie, že príkaz grep bol špecifikovaný cez noc.

Thompson špecifikoval pôvodnú verziu v jazyku assembleru PDP-11 na podporu Lee E. McMohan kontrola textu Federalist Papers, aby sa rozhodlo o autorstve jednotlivých dokumentov. Textový editor ed mal podporu pre regulárny výraz, ale nedal sa použiť na taký veľký text; Thompson skopíroval tento kód do samostatného nástroja. Vybral meno kvôli v ed; príkaz grep vytlačí každý riadok rovnako ako opísaný vzor. Najprv bol vo verzii 4 Unix pridaný grep s tým, že „všeobecne sa to uvádza ako prototypový softvérový nástroj“ , Mcllroy schválil grep s „neodvolateľne zakorenený“ filozofia nástrojov Thompson v Unixe.

Implementácie grep

V niekoľkých prostrediach vývoja softvéru a operačných systémoch je prítomný celý rad implementácií grep. Skoré verzie zahŕňali fgrep a egrep, predstavené vo verzii 7 Unixu. Verzia egrep podporuje syntax pre rozšírený regulárny výraz zahrnutý Alfredom Ahom po pôvodnej implementácii regulárneho výrazu Kena Thompsona. Verzia fgrep nájde akýkoľvek pevný zoznam reťazcov pomocou Algoritmus na porovnávanie reťazcov Aho-Corasick . Tieto binárne súbory verzií sú dostupné v moderných systémoch, pripájajú sa k grep alebo volajú grep skript shellu pomocou správneho príznaku pridaného pri všeobecnom nasadení na systémoch POSIX.

Medzi ďalšie príkazy patrí 'grip' slovo, ktoré reprezentujú, hľadajú nástroje, zvyčajne také, ktoré závisia od zhôd regulárnych výrazov. Napríklad užitočnosť, t.j. 'pgrep' , zobrazuje procesy, ktorých názvy sú rovnaké ako zadaný regulárny výraz.

  • Grep je názov vstavanej funkcie, ktorá hľadá prvky v zozname, ktoré zabávajú určitú vlastnosť v Perl programovací jazyk.
  • Zvyčajne sa volá táto funkcia vyššieho rádu 'filter' alebo 'kde' v inom jazyku.
  • Príkaz, t.j. pcregrep , je implementácia grep, ktorá využíva syntax pre regulárny výraz Perl. Rovnakú funkčnosť je možné pridať do verzie grep GNU pomocou príznaku -P.
  • Tiež porty grep (napr GnuWin32 a Cygwin ) spustiť v systéme Microsoft Windows. Niekoľko verzií systému Windows poskytuje rovnaký príkaz findstr alebo qgrep.
  • Príkaz grep je tiež súčasťou nástrojov MSX-DOS2 v ASCII pre verziu 2 MSX-DOS.
  • Príkazy fgrep, egrep a grep boli dodané do operačného systému IBM i.
    Softvér Adobe InDesign má funkcie GREP (od vydania CS3) v dialógovom okne na karte „GREP“ zmeniť/nájsť a špecifikované pomocou CS4 v „štýly GREP“ štýly odsekov.

Ako nainštalovať grep v Linuxe?

Grep je predinštalovaný takmer v každej distribúcii Linuxu. V prípade, že ho však môžeme nainštalovať pomocou nižšie uvedeného príkazu v okne terminálu, ak v našom systéme chýba:

 $ sudo apt-get install grep 

grep s fajkou

Príkaz 'grep' sa vo všeobecnosti používa s potrubím (|) .

Syntax:

 command | grep 

Príklad:

 cat marks.txt | grep 9 

Linuxové filtre Grep1

Pozrite sa na snímku vyššie, príkaz grep filtruje všetky údaje obsahujúce '9'.

t ff

grep bez potrubia

Dá sa použiť aj bez potrubia.

Syntax:

pole reťazcov
 grep 

Príklad:

 grep 9 marks.txt 

Linuxové filtre Grep2

Pozrite sa na snímku vyššie, príkaz grep vykoná rovnakú prácu ako predchádzajúci príklad, ale bez potrubia.

možnosti grep

    grep -vM: Príkaz 'grep -v' zobrazí riadky, ktoré sa nezhodujú so zadaným slovom.

    Syntax:

     grep -v 

    Príklad:

     grep -v 9 marks.txt 

    Linuxové filtre Grep3

    Pozrite sa na snímku vyššie, príkaz 'grep -v 9 marks.txt' zobrazí riadky, ktoré neobsahujú naše hľadané slovo '9'.

    grep -i: Príkaz 'grep -i' filtruje výstup tak, že sa nerozlišujú veľké a malé písmená.

    Syntax:

     grep -i 

    Príklad:

     grep -i red exm.txt 

    Linuxové filtre Grep4

    Pozrite sa na snímku vyššie, príkaz 'grep -i red exm.txt' zobrazí všetky riadky obsahujúce 'červenú' či už veľkými alebo malými písmenami.

    grep -A/ grep -B/ grep -C

    grep - Príkaz sa používa na zobrazenie riadok po výsledku .

    listnode java

    Príkaz grep -B sa používa na zobrazenie riadok pred výsledkom .

    Príkaz grep -C sa používa na zobrazenie riadok za a riadok pred výsledok.

    Na zobrazenie ľubovoľného počtu riadkov môžete použiť (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....).

    Syntax:

     grep -A grep -B grep -C 

    Príklad:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linuxové filtre Grep5

    Pozrite sa na snímku vyššie, príkaz 'grep -A1 yellow exm.txt' zobrazí hľadaný riadok s nasledujúcim riadkom, príkaz 'grep -B1 yellow exm.txt' zobrazí hľadaný riadok s jedným predchádzajúcim riadkom a príkazom 'grep -C1 yellow exm.txt' zobrazí hľadaný riadok s jedným predchádzajúcim a nasledujúcim riadkom.