Grep-komento: tehokas työkalu tekstin etsimiseen Terminalista

Grep-komento

Lähes jokainen, jolla on tietokone tai joka työskentelee sen kanssa, tietää pikanäppäimen Ctrl + F tekstin löytämiseksi. "F" tarkoittaa "etsi", "löytää" englanniksi, ja sitä voidaan käyttää esimerkiksi tekstin etsimiseen verkkosivulta. Tämä pikakuvake on saatavana myös monissa sovelluksissa, on ohjelmia, jotka käyttävät "B" -hakua, mutta nämä pikanäppäimet toimivat vain, jos olemme sovelluksen sisällä ja tiedoston ollessa auki. Linuxissa meillä on erittäin tehokkaita työkaluja, jotka voimme käynnistää terminaalista ja jos haluamme Löydä joukkueessamme oleva teksti ja käytämme komentoa grep.

grep Se on komento, joka auttaa meitä löytämään tekstiä ilmoitetusta tiedostosta. Sen nimi tulee g / re / p-komennosta, joka toimii jotain vastaavaa varten Unix / Linux-tekstieditorissa. Kuten monet muut komennot, grep On monta käytettävissä olevat vaihtoehdot, jotka lisätään kirjaimina ja kukin palvelee eri tehtävää. Yhdistämällä nämä vaihtoehdot voimme suorittaa monimutkaisia ​​hakuja yhdessä tai useammassa tiedostossa. Tässä näytämme sinulle kaiken mitä sinun tarvitsee tietää.

kanssa grep löydämme tekstiä mistä tahansa tiedostosta

Ensinnäkin selitämme käytettävissä olevat vaihtoehdot:

  • -i: ei tee eroa isojen ja pienten kirjainten välillä.
  • -w: pakota se etsimään vain tiettyjä sanoja.
  • -v: valitsee rivit, jotka eivät vastaa toisiaan.
  • -n: näyttää rivin numeron pyydetyillä sanoilla.
  • -h: poistaa etuliitteen tulosteen Unix-tiedostonimestä.
  • -r: etsii hakemistoja rekursiivisesti.
  • -R: kuten -r, mutta seuraa kaikkia symbolisia linkkejä.
  • -l: näyttää vain tiedostojen nimet, joissa on valitut rivit.
  • -c- Näyttää vain yhden määrän valittuja rivejä kohden.
  • -Väri: Näyttää yhteensopivat kuviot väreinä.

Kuvasta, jonka otsikkosi on tämä artikkeli, olen etsinyt sanaa "Kuvat" tiedostosta "830.desktop", joka on tällä polulla. Kuten näette, olen kirjoittanut:

grep Imágenes /home/pablinux/Documentos/830.desktop

Muista, että kirjoitamme tässä artikkelissa esimerkkejä, joita on muutettava hakuasetuksemme mukaan. Kun sanomme "File", "Word" jne., Viitataan tiedostoon sen polulla. Jos olisin juuri kirjoittanut "grep Images 830.desktop", olisin saanut viestin, jonka mukaan tiedostoa ei ole olemassa. Tai niin olisi, ellei tiedosto olisi juurihakemistossa.

Muita esimerkkejä ovat:

  • grep -i images /home/pablinux/Documentos/830.desktop, jossa "kuvat" olisi sana, jonka haluamme löytää, ja loput tiedosto polkuineen. Tämä esimerkki etsii "kuvia" tiedostosta "830.desktop" kirjainkoko.
  • grep -R-kuvat: se etsii hakemiston kaikki rivit ja kaikki sen alihakemistot, joissa sana "kuvat" löytyy.
  • grep -c esimerkki test.txt: tämä etsii meitä ja näyttää kuinka monta kertaa "esimerkki" näkyy tiedostossa nimeltä "test.txt".

Grepillä Voimme myös etsiä tiedostoja

Jos haluamme löytää tiedoston 830.desktop, kirjoitamme seuraavan komennon:

grep 830.desktop

Tämä suorittaa a etsi tiedosto «830.desktop» henkilökohtaisesta kansiostammeToisin sanoen, jos tiedosto on toisen käyttäjän henkilökohtaisessa kansiossa, sitä ei löydy. Tämä on normaalin asia maailmassa, koska käyttäjällä ei ole lupaa käyttää toisen käyttäjän sisältöä ilman salasanaa.

Rekursiivisten hakujen suorittaminen

grep se antaa meille myös mahdollisuuden tehdä hakuja toistuvien sääntöjen tai ohjeiden mukaisesti. Lue esimerkiksi jokaisen hakemiston kaikki tiedostot, jotka sisältävät sanan "Pablinux". Tätä varten kirjoitamme:

grep -r Pablinux /home/

O hyvin:

grep -R Pablinux /home/

Näemme "Pablinux" -tulokset erillisellä rivillä, jota edeltää tiedoston nimi, josta se löytyi. Jos emme halua nähdä tiedostonimiä datalähdössä, käytämme -h-vaihtoehtoa (from "hide"; piilota):

grep -h -R Pablinux /home/

Voimme yhdistää vaihtoehdot yhdessä ja kirjoittaa "-hR" ilman lainausmerkkejä.

Kuinka tehdä tarkat sanahaut

Joskus on tiedostoja, jotka sisältävät mitä haluamme etsiä jotain muuta. Esimerkiksi tämä voi tapahtua meille yhdistetyillä sanoilla ja etsimällä sanaa "metsät" voimme löytää "vartijoita". Jos haluamme löytää tarkka sana käytämme -w -vaihtoehtoa:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Yllä oleva komento etsii "metsät" ohittamatta rangereita tiedostosta "vacation.txt" osoitetulta polulta. Jos haluamme etsiä kahta erilaista sanaa, käytämme komentoa egrep:

egrep -w bosques|plantas /ruta/del/archivo

Tiedä kuinka monta kertaa sana esiintyy tiedostossa

grep se pystyy myös laske kuinka monta kertaa sana esiintyy tiedostossa. Tätä varten käytämme -c-vaihtoehtoa:

grep -c prueba /ruta/al/archivo

Lisäämällä vaihtoehto -n mitä näemme, on sen rivin numero, jossa sana esiintyy.

Käänteinen haku

Voimme myös tehdä päinvastoin, etsi rivejä, jotka eivät sisällä sanaa. Tätä varten käytämme -v -vaihtoehtoa, joka olisi seuraava:

grep -v la ruta/al/archivo

Yllä oleva komento näyttää kaikki rivit, joissa ei ole sanaa ". Tämä voi olla hyödyllistä asiakirjoissa tai luetteloissa, joissa sana toistetaan monta kertaa, ja jostain syystä meidän on käytettävä muita rivejä.

Pääsy järjestelmätietoihin grep

PC-malli

grep se ei kykene vain etsimään tiedostoista. Se on myös pystyy tarkastelemaan järjestelmätietoja. Edellisessä kuvakaappauksessa voimme nähdä, kuinka se näyttää meille minkä PC-mallin meillä on (tiedän, että se ei ole tehokkain kannettava tietokone maailmassa). Tätä varten olemme käyttäneet komentoa:

cat /proc/cpuinfo | grep -i 'Model'

O hyvin:

grep -i 'Model' /proc/cpuinfo

Jos haluamme nähdä levyasemien nimet, kirjoitamme:

dmesg | egrep '(s|h)d[a-z]'

Kuinka luetella vain vastaavat tiedostojen nimet

Jos haluamme nähdä luettelon vain hakua vastaavien tiedostojen nimistä, käytämme alla olevaa vaihtoehtoa -l:

grep -l 'main' *.c

Ja jos haluamme nähdä sanan väreissä, kirjoitamme:

grep --color palabra /ruta/al/archivo

Kuten näette, komento grep on erittäin tehokas työkalu Se on sen arvoinen erityisesti tapauksissa, joissa emme muista missä olemme kirjoittaneet jotain tai ohjelmoinnissa. Lisäksi se auttaa meitä saamaan tietoa järjestelmästä tavalla, josta Terminalin ystävät pitävät. Onko tämä tekstien löytämistä käsittelevä komento ollut hyödyllinen sinulle grep?


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  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.   nordi dijo

    Hei!
    Kun sanot, että Grepiä käytetään myös tiedostojen etsimiseen, en usko, että se on oikea, koska jos suoritat grep EXPRESSION -ohjelmaa etkä välitä tiedostoa sille, se odottaa tietojen syöttöä vakiotulosta.
    Manuaalisen sivun mukaan:
    grep etsii nimetyistä syötetiedostoista rivejä, jotka sisältävät vastaavuuden annettuun malliin. Jos tiedostoja ei ole määritetty tai jos tiedosto on - -, grep etsii vakiotuloa.
    Siksi voit käyttää sitä putkilinjoissa, kuten siinä, joka jäsentää / proc / cpuinfo -lähdön välittämällä tämän komennon lähdön syötteeksi grepiin, voit tehdä haun.
    tervehdys

  2.   Ana dijo

    Erittäin hyvä viesti.
    Selität sen hyvin ja menet suoraan asiaan.