Ukaz Grep: močno orodje za iskanje besedila iz terminala

Ukaz Grep

Skoraj vsak, ki ima računalnik ali dela z njim, bo poznal bližnjico na tipkovnici Ctrl + F za iskanje besedila. Znak "F" v angleščini pomeni "Najdi", "Najti" in ga lahko na primer uporabite za iskanje besedila na spletni strani. Ta bližnjica je na voljo tudi v številnih aplikacijah, obstajajo programi, ki uporabljajo "B" za "Iskanje", vendar te bližnjice delujejo samo, če smo znotraj aplikacije in z odprto datoteko. V Linuxu imamo zelo zmogljiva orodja, ki jih lahko zaženemo s terminala in če želimo poiščemo besedilo, ki je v naši ekipi, uporabili bomo ukaz grep.

grep To je ukaz, ki nam bo pomagal najti besedilo v datoteki, ki jo označimo. Njegovo ime izvira iz g / re / p, ukaza, ki deluje za nekaj podobnega v urejevalniku besedil Unix / Linux. Kot mnogi drugi ukazi, grep Ima mnogo razpoložljive možnosti, ki jih bomo dodali v obliki črk in vsak bo služil drugačno nalogo. S kombinacijo teh možnosti bomo lahko izvajali zapletena iskanja v eni ali več datotekah. Tu vam pokažemo vse, kar morate vedeti.

z grep v kateri koli datoteki bomo našli poljubno besedilo

Najprej bomo razložili razpoložljive možnosti:

  • -i: ne bo razlikoval med velikimi in malimi črkami.
  • -w: prisili ga, da najde samo določene besede.
  • -v: izbere vrstice, ki se ne ujemajo.
  • -n: prikazuje številko vrstice z zahtevanimi besedami.
  • -h: odstrani predpono iz imena datoteke Unix v izhodu.
  • -r: rekurzivno išče po imenikih.
  • -R: kot -r, vendar sledite vsem simbolnim povezavam.
  • -l: prikazuje samo imena datotek z izbranimi vrsticami.
  • -c- Prikaže samo eno štetje na datoteko izbranih vrstic.
  • -Barva: Prikaže ujemajoče se vzorce v barvah.

Na sliki, ki jo vodite v tem članku, sem poiskal besedo "Slike" v datoteki "830.desktop", ki je na tej poti. Kot lahko vidite, sem napisal:

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

Upoštevajte, da bomo v tem članku napisali primere, ki jih je treba spremeniti glede na naše nastavitve iskanja. Ko rečemo »Datoteka«, »Beseda« itd., Se bomo sklicevali na datoteko z njeno potjo. Če bi pravkar napisal "grep Images 830.desktop", bi prejel sporočilo, da datoteka ne obstaja. Ali tako bi bilo, razen če bi bila datoteka v korenskem imeniku.

Drugi primeri bi bili:

  • grep -i images /home/pablinux/Documentos/830.desktop, kjer bi bila "slike" beseda, ki jo želimo najti, ostalo pa datoteka s svojo potjo. Ta primer bi poiskal "slike" v datoteki "830.desktop", ki ne razlikuje med velikimi in malimi črkami.
  • slike grep -R: poiskal bi vse vrstice imenika in vse njegove podimenike, kjer je beseda "slike".
  • grep -c primer test.txt: to bi nas poiskalo in pokazalo skupno število pojavitev primera v datoteki z imenom "test.txt.

Z grepom lahko tudi iščemo datoteke

Če želimo najti datoteko 830.desktop, bomo napisali naslednji ukaz:

grep 830.desktop

To bo izvedlo a poiščite datoteko «830.desktop» v naši osebni mapiZ drugimi besedami, če je datoteka v osebni mapi drugega uporabnika, je ne bo mogoče najti. To je najbolj običajna stvar na svetu, ker uporabnik nima dovoljenja za dostop do vsebine druge osebe brez svojega gesla.

Kako izvajati rekurzivna iskanja

grep nam tudi omogoča izvajajte iskanja ob upoštevanju ponavljajočih se pravil ali smernic. Preberite na primer vse datoteke v vsakem imeniku, ki vsebujejo besedo "Pablinux". Za to bomo napisali:

grep -r Pablinux /home/

No dobro:

grep -R Pablinux /home/

Rezultate za "Pablinux" bomo videli v ločeni vrstici, pred katero bo ime datoteke, v kateri je bila najdena. Če v izhodnih podatkih ne želimo videti imen datotek, bomo uporabili možnost -h (od "skrij"; skrij):

grep -h -R Pablinux /home/

Lahko se pridružimo možnostim in napišemo "-hR" brez narekovajev.

Kako natančno iskati besede

Včasih obstajajo datoteke, ki vsebujejo tisto, kar želimo poiskati kaj drugega. Na primer, to se nam lahko zgodi v sestavljenih besedah ​​in z iskanjem "gozdovi" lahko najdemo "rangerje". Če hočemo poiščite natančno besedo uporabili bomo možnost -w:

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

Zgornji ukaz bi v datoteki "holiday.txt" na navedeni poti iskal "gozdove", pri čemer ne bi upošteval redarjev. Če želimo poiskati dve različni besedi, bomo uporabili ukaz egrep:

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

Vedeti, kolikokrat se v datoteki pojavi beseda

grep je tudi sposoben preštejte, kolikokrat se pojavi beseda v datoteki. Za to bomo uporabili možnost -c:

grep -c prueba /ruta/al/archivo

Če dodamo možnost -n, bomo videli številko vrstice, v kateri se beseda pojavi.

Povratne poizvedbe

Lahko storimo tudi obratno, to je, poiščite vrstice, ki ne vsebujejo besede. Za to bomo uporabili možnost -v, ki bi bila naslednja:

grep -v la ruta/al/archivo

Zgornji ukaz bi prikazal vse vrstice, ki ne vsebujejo besede "the". To lahko pride v poštev v dokumentih ali na seznamih, v katerih se beseda večkrat ponovi in ​​iz neznanega razloga moramo dostopati do preostalih vrstic.

Dostop do sistemskih informacij z grep

Model osebnega računalnika

grep ne samo, da je sposoben iskati po datotekah. Je tudi sistemske informacije. Na prejšnjem posnetku zaslona lahko vidimo, kako nam prikazuje, kateri model osebnega računalnika imamo (vem, da to ni najmočnejši prenosnik na svetu). Za to smo uporabili ukaz:

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

No dobro:

grep -i 'Model' /proc/cpuinfo

Če želimo videti imena diskovnih enot, bomo zapisali:

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

Kako uvrstiti samo ujemajoča se imena datotek

Če želimo videti seznam samo z imeni datotek, ki se ujemajo z iskanjem, bomo uporabili možnost -l, kot je prikazano spodaj:

grep -l 'main' *.c

In če želimo besedo videti v barvah, bomo zapisali:

grep --color palabra /ruta/al/archivo

Kot lahko vidite, ukaz grep je zelo močno orodje To se splača predvsem v primerih, ko se ne spomnimo, kje smo kaj napisali ali pri programiranju. Poleg tega nam pomaga najti sistemske informacije na način, ki bo všeč ljubiteljem terminala. Ali vam je bil ta vodnik po ukazu za iskanje besedil koristen grep?


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   nordi je dejal

    Pozdravljeni!
    Ko rečete, da se Grep uporablja tudi za iskanje datotek, mislim, da ni pravilno, ker če zaženete grep EXPRESSION in mu datoteke ne posredujete, bo počakal na vnos podatkov s standardnega vnosa.
    Glede na stran z navodili:
    grep išče po imenovanih vhodnih DATOTEKAH vrstice, ki vsebujejo ujemanje z danim VZORCEM. Če datoteke niso določene ali če je podana datoteka »-«, grep poišče standardni vnos.
    Zato ga lahko uporabite v cevovodih, na primer tistega, ki razčleni izhodne datoteke / proc / cpuinfo tako, da izhod tega ukaza posreduje kot vhodno datoteko grep, da lahko iščete.
    pozdrav

  2.   Ana je dejal

    Zelo dobra objava.
    Zelo dobro razložiš in greš naravnost k bistvu.