Perussuodatus grepillä

Yksi komennoista, joita käytän eniten päätelaitteessa, on grep, jopa enemmän kuin cd o ls.

grep Sillä on monia vaihtoehtoja ja se tarjoaa erilaisia ​​mahdollisuuksia, mutta käytän kuitenkin tavanomaisinta mahdollista tapaa, mutta aloitetaan selittämällä Mikä on grep?

grep on yksinkertaisesti suodatin, se on komento, joka näyttää rivit, jotka vastaavat ilmoitettua suodatinta.

Esimerkiksi järjestelmässämme meillä on tiedosto / usr / share / doc / bash / FAQ ja tämän tiedoston sisältö on:

Näytä tiedoston sisältö

Jos haluat listata päätelaitteen sisällön komennolla miten (kyllä ​​kissa, kuten kissa hehe), he voivat tehdä sen:

cat /usr/share/doc/bash/FAQ

Oletetaan, että haluamme nyt luetella vain tiedoston rivin, joka puhuu versiosta, tähän käytämme grep:

cat /usr/share/doc/bash/FAQ | grep version

Kun laitat sen terminaaliin, näytät vain rivin, joka sisältää tiedostossa version, se ei enää näytä riviä, joka ei sisällä kyseistä sanaa.

Entä jos haluan näyttää kaiken paitsi versiorivi?

Eli tavalla, jonka selitin sinulle, kaikki suodattimen mukainen näytetään, nyt näytän sinulle, miten kaikki saadaan näkyviin paitsi mikä vastaa suodatinta:

cat /usr/share/doc/bash/FAQ | grep -v version

Huomaatko eron? ... yksinkertaisesti lisäämällä -v sillä on jo ero 😀

Joten jos he laittaa grep se näyttää vain, mikä vastaa suodatinta, mutta jos laitat grep -v se näyttää kaiken paitsi suodattimen.

No, tässä viesti päättyy, vain yksi vinkki, että nyt he voivat vähätellä sitä, mutta ... heillä ei ole aavistustakaan kuinka hyödyllinen grep voi olla, se on vakavasti elämän säästö 😀

terveiset


Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

11 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista.

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   DMoZ dijo

    Epäilemättä erittäin monipuolinen komento, kun opit käsittelemään sitä, se helpottaa elämääsi =) ...

  2.   Scalibur dijo

    Hei! .. ..todella erittäin hyödyllinen komento .. minun tapauksessani käytän sitä paljon ..

    Yksinkertainen esimerkki olisi esimerkiksi dpkg -l | grep 'package' (debianiin perustuvien distrojen tapauksessa), sitä käytetään tietämään, onko paketti asennettu.

    Hienoa antaa nämä työkalut koko yhteisöllemme 😉

    1.    KZKG ^ Gaara dijo

      Paljon kiitoksia 😀
      Grep on todellakin yhtä voimakas kuin mielikuvituksemme hahahaha, yhdessä awk: n (ja leikkauksen) kanssa he todella tekevät ihmeitä * - *

      Annan pian vielä muutaman vinkin terminaalityöhön 😉
      Terveisiä ja kiitos kommentistasi.

      PS: Sähköpostisi on mielenkiintoinen LOL !!

  3.   hexborg dijo

    Oikein hyvä!! Kyllä, varmasti grep on yksi hengenpelastajista kaikille, jotka haluavat käyttää terminaalia. Vain muutama kohta: Sinun ei todellakaan tarvitse käyttää kissa-komentoa lainkaan. Voit laittaa tiedostonimen grep-parametriksi näin:

    grep-versio / usr / share / doc / bash / FAQ

    Lisäksi, vaikka se ei pystyisi, olisi aina mahdollisuus ohjata komentosyöttö tekemällä jotain tällaista:

    grep-versio </ usr / share / doc / bash / FAQ

    Jälkimmäinen voidaan tehdä millä tahansa komennolla, joten ei ole koskaan tarpeen käyttää cat-tiedostoa tiedoston lähettämiseen komennon syötteeseen.

    Uudelleenohjauksen käyttäminen kissan sijaan saa kuoren käynnistämään yhden vähemmän prosessia, mikä kuluttaa vähemmän resursseja. Se ei ole tuntuva ero, mutta sitä pidetään hyvänä käytäntönä.

    Toisaalta grepistä on todella hyötyä käytettäessä säännöllisiä lausekkeita ... Jos haluaisin auttaa tekemällä säännöllisiä lausekkeita koskevan viestin, mitä tekisin? Riittääkö uuden viestin lisääminen WordPress-työpöydältä?

    1.    KZKG ^ Gaara dijo

      Voi mielenkiintoista, tottuin aina käyttämään sitä kissan HAHAHAHA kanssa, kiitos kärjestä 😀

      1.    Hugo dijo

        Grep-toiminnolla voit myös tehdä suodattimista hieman vähemmän perustason, esimerkiksi:

        grep -B3 -A3 -E -i --color=auto -n "(desde|hacia)?linux(\.)?$" ~/miarchivo.txt

        Tämä näyttää pohjimmiltaan rivit, jotka sisältävät etsimämme termin (joka voi olla missä tahansa yhdistelmässä isoja ja pieniä kirjaimia), sekä kolme riviä ennen ja jälkeen kolme, korostaa tuloksia eri väreillä, lisää viivojen numerot tuloksiin ja sallii laajennettujen säännöllisten lausekkeiden sallimisen, jotka tällöin mahdollistavat hakemisen "myfile.txt" -sivulta kaikilla riveillä, jotka päättyvät desdelinuxiin, hacialinuxiin tai linuxiin (pelkällä pisteellä tai ilman).

        Muuten, säännölliset lausekkeet tarjoavat paljon joustavuutta, ja jokaisen hyvän friikin, jolla on intohimo vapaata ohjelmistoa kohtaan, pitäisi oppia käyttämään niitä, hehe.

  4.   Dragnell dijo

    On myös mahdollista käyttää zgrep-tablettia .ta.gz-muodossa. Se on erittäin hyödyllinen, kun haluamme tarkistaa vanhat lokit. Kippis

  5.   Jhon dijo

    Hei. kiitos postista. Minulle sattuu, että grepiä käytettäessä sana, jonka kirjoitan ilmestyville riveille, ei muutu väreiksi. (yleensä se on näin) [esimerkki: grep cat file.txt]
    viivat ja kissa näkyvät, mutta kissa ei muutu tietyllä värillä sen erottamiseksi
    (uni-kopiollani, jos näet sen)
    Tiedätkö kuinka voisin aktivoida tämän vaihtoehdon?
    Ole hyvä, jos voit vastata minulle. sähköpostini on sps-003@hotmail.com

    1.    fdy nb dijo

      ystävän on kirjoitettava kissa lainausmerkkeinä "kissa" tai myös "kissa" ja sen jälkeen tiedoston nimi, josta hän haluaa etsiä

  6.   Enrique dijo

    Hei ystävä, olet täysin oikeassa, sinulla on suuri käyttökelpoisuus. Tästä eteenpäin, grep laitoin sen ensimmäiseksi suosikkikomentojeni luetteloon.
    terveiset

  7.   scanjura dijo

    Ja miten olisi näyttää työntekijöille suodatettu palkka?