logo

Grep-komento Linuxissa/Unixissa esimerkein

'grep'-komento tarkoittaa 'globaali säännöllinen lauseketulostus' . grep-komento suodattaa tiedoston sisällön, mikä tekee hausta helppoa.

Se on komentorivin apuohjelma, joka etsii tekstitietoryhmistä rivejä, jotka ovat samoja kuin säännöllinen lauseke. Nimi 'pito' tulee komennosta, eli ed, joka sisältää saman vaikutuksen. Alun perin grep suunniteltiin Unix-käyttöjärjestelmää varten, mutta se tuli myöhemmin saataville jokaiseen Unix-tyyppiseen järjestelmään ja muutamaan muuhun, kuten OS 9:ään.

Grep-suodatin löytää tiedoston tietylle merkkikuviolle ja näyttää jokaisen rivin, joka sisältää kyseisen kuvion. Merkkien tulee olla lainausmerkeissä, jos ne esiintyvät kuvioparametrissa, jolla on erityinen merkitys kuorelle. Yleensä koko kuvio on laitettava yhteen lainausmerkkiin, jos kuvioparametri ei ole yleinen merkkijono.

Lausekkeessa, kuten [a-z], miinusmerkki (-) cml kuvaa aluetta nykyisen lajittelujärjestyksen perusteella. Lajittelujärjestys voi määrittää vastaavat luokat merkkialueilla käytettäväksi. grep-komento olettaa stdin, kun tiedostoja ei mainita.

Mallia kutsutaan säännölliseksi lausekkeeksi, joka löytyy tiedoston sisällä. Malli on rajoitettu säännöllinen lauseke egrep- tai ed-komennon muodossa. Grep-komento käyttää kiinteää ei-determinististä algoritmia. Se on kätevä, kun meidän on suodatettava suuria lokitiedostoja.

Grepin lyhyt historia

Ennen kuin se nimettiin, grep oli luottamuksellinen apuohjelma, jonka määritteli Ken Thompson löytääksesi tiedostoja useille kuvioille. Sen olemassaolosta tuntematon, Doug Mcllroy pyysi Thompsonia määrittämään tällaisen toiminnon. Vastasi, että hän ajattelisi yhdessä yössä sellaista apuohjelmaa. Thompson teki parannuksia ja korjasi suita noin tunnin ajan ohjelmassaan, joka tunnetaan nimellä 's' (tai etsi). Hän esitteli tehtävän seuraavana päivänä Mcllroylle, joka sanoi sen olevan sama kuin hän halusi. Thompsonin kertomus voi kuvata uskoa, että grep-komento määriteltiin yhdessä yössä.

Thompson määritteli alkuperäisen version PDP-11-kokoonpanokielellä tuettavaksi Lee E. McMohan tarkistamalla Federalist Papers -tekstin yksittäisen paperin kirjoittajan määrittämiseksi. Ed-tekstieditorissa oli tuki säännölliselle lausekkeelle, mutta sitä ei voitu käyttää niin suuressa tekstissä; Thompson kopioi koodin erilliselle työkalulle. Hän valitsi nimen ed; grep-komento tulostaa jokaisen rivin samalla tavalla kuin kuvattu kuvio. Ensin grep lisättiin Unix-versioon 4, sanoen sen 'se mainitaan yleensä prototyyppisenä ohjelmistotyökaluna' , Mcllroy hyväksyi grep kanssa 'peruuttamattomasti juurtuva' Thompsonin työkalufilosofia Unixissa.

Grep:n toteutukset

Useissa ohjelmistokehitysympäristöissä ja käyttöjärjestelmissä on useita grep-toteutuksia. Varhaisiin versioihin sisältyivät fgrep ja egrep, jotka esiteltiin Unixin 7-versiossa. Egrep-versio tukee syntaksia laajennetulle säännölliselle lausekkeelle, jonka Alfred Aho sisällytti Ken Thompsonin alkuperäisen säännöllisen lausekkeen toteutuksen jälkeen. Fgrep-versio löytää kaikki kiinteät merkkijonoluettelot, joissa on Aho-Corasickin merkkijonojen sovitusalgoritmi . Nämä versiobinaarit ovat saatavilla nykyaikaisissa järjestelmissä, jotka muodostavat yhteyden grepiin tai kutsuvat grepiä komentotulkkikomentosarjaksi käyttämällä oikeaa lisättyä lippua, kun niitä käytetään yleensä POSIX-järjestelmissä.

erillinen merkkijono javassa

Muita komentoja ovat mm 'pito' he etsivät työkaluja, jotka ovat yleensä riippuvaisia ​​säännöllisten lausekkeiden osumista. Esimerkiksi apuohjelma, ts. 'pgrep' , näyttää prosessit, joiden otsikot ovat samat kuin tarjottu säännöllinen lauseke.

  • Grep on sisäänrakennetun funktion nimi, joka etsii luettelosta elementtejä, jotka viihdyttävät tiettyä ominaisuutta Perl ohjelmointikieli.
  • Tyypillisesti tätä korkeamman asteen funktiota kutsutaan 'suodattaa' tai 'missä' toisella kielellä.
  • Käsky, ts. pcregrep , on grep-toteutus, joka käyttää Perl-säännöllisen lausekkeen syntaksia. Sama toiminto voidaan lisätä grep GNU -versioon -P-lipulla.
  • Myös grep-portit (esim GnuWin32 ja Cygwin ) suoritetaan Microsoft Windowsissa. Muutamat Windows-versiot tarjoavat saman findstr- tai qgrep-komennon.
  • Lisäksi grep-komento on osa MSX-DOS:n 2-version ASCII:n MSX-DOS2-työkaluja.
  • Fgrep-, egrep- ja grep-komennot on toimitettu IBM i -käyttöjärjestelmään.
    Adobe InDesign -ohjelmistossa on GREP-toiminnot (CS3-versiosta lähtien) Muuta/etsi 'GREP'-välilehden valintaikkunassa ja määritetään CS4:llä 'GREP-tyylit' kappaletyylejä.

Kuinka asentaa grep Linuxiin?

Grep on esiasennettu melkein kaikkiin Linux-jakeluihin. Voimme kuitenkin asentaa sen alla olevalla komennolla pääteikkunassa, jos se puuttuu järjestelmästämme:

 $ sudo apt-get install grep 

grep putken kanssa

merkki.vertaa javaa

'grep'-komentoa käytetään yleensä putken kanssa (|) .

Syntaksi:

 command | grep 

Esimerkki:

 cat marks.txt | grep 9 

Linuxin Grep-suodattimet1

Katso yllä olevaa tilannekuvaa, grep-komento suodattaa kaikki tiedot, jotka sisältävät '9'.

grep ilman putkea

Voidaan käyttää myös ilman putkea.

Syntaksi:

 grep 

Esimerkki:

 grep 9 marks.txt 

Linuxin Grep-suodattimet2

Katso yllä olevaa tilannekuvaa, grep-komento tekee saman työn kuin aikaisempi esimerkki, mutta ilman putkea.

grep-vaihtoehdot

    grep -vM: 'grep -v' -komento näyttää rivit, jotka eivät vastaa määritettyä sanaa.

    Syntaksi:

     grep -v 

    Esimerkki:

     grep -v 9 marks.txt 

    Linuxin Grep-suodattimet3

    Katso yllä olevaa tilannekuvaa, komento 'grep -v 9 marks.txt' näyttää rivit, jotka eivät sisällä hakusanaamme '9'.

    grep -i: Komento 'grep -i' suodattaa tulosteen kirjainkoon erottelukyvyllä.

    Syntaksi:

     grep -i 

    Esimerkki:

     grep -i red exm.txt 

    Linuxin Grep-suodattimet4

    Katso yllä olevaa tilannekuvaa, komento 'grep -i red exm.txt' näyttää kaikki rivit, jotka sisältävät 'punaisen' joko isoilla tai pienillä kirjaimilla.

    merkkijono kokonaisluvuksi javassa
    grep -A/ grep -B/ grep -C

    grep -komentoa käytetään näyttämään rivi tuloksen jälkeen .

    grep -B -komentoa käytetään näyttämään rivi ennen tulosta .

    grep -C -komentoa käytetään näyttämään rivi jälkeen ja rivi ennen lopputulos.

    Voit käyttää (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) näyttääksesi minkä tahansa määrän rivejä.

    Syntaksi:

     grep -A grep -B grep -C 

    Esimerkki:

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

    Linuxin Grep-suodattimet5

    Katso yllä olevaa tilannekuvaa, komento 'grep -A1 keltainen exm.txt' näyttää haetun rivin seuraavan seuraavan rivin, komennon kanssa 'grep -B1 keltainen exm.txt' näyttää haetun rivin yhden edeltävän rivin ja komennon kanssa 'grep -C1 keltainen exm.txt' näyttää haetun rivin yhden edeltävän ja seuraavan rivin kanssa.