Komanda Grep: mjet i fuqishëm për të gjetur tekst nga Terminali

Komanda grep

Pothuajse kushdo që ka një kompjuter ose që punon me një të tillë do ta dijë shkurtoren e tastierës Ctrl + F për të gjetur tekstin. "F" vjen nga "Gjeni", "për të gjetur" në anglisht dhe mund të përdoret, për shembull, për të gjetur tekst në një faqe në internet. Kjo shkurtore është gjithashtu e disponueshme në shumë aplikacione, ka programe që përdorin "B" për "Kërko", por këto shkurtore funksionojnë vetëm nëse jemi brenda aplikacionit dhe me skedarin e hapur. Në Linux kemi mjete shumë të fuqishme që mund t’i lëshojmë nga Terminali dhe nëse duam gjeni ndonjë tekst që është në ekipin tonë, ne do të përdorim komandën grep.

grep Shtë një komandë që do të na ndihmojë të gjejmë tekst brenda skedarit që ne tregojmë. Emri i tij vjen nga g / re / p, një komandë që funksionon për diçka të ngjashme në një redaktues teksti Unix / Linux. Si shumë komanda të tjera, grep Ka shume opsionet e disponueshme që do t’i shtojmë në formë të shkronjave dhe secili do të shërbejë për një detyrë të ndryshme. Duke kombinuar këto opsione ne do të jemi në gjendje të kryejmë kërkime komplekse në një ose më shumë skedarë. Këtu ju tregojmë gjithçka që duhet të dini.

me grep ne do të gjejmë çdo tekst në çdo skedar

Para së gjithash ne do të shpjegojmë opsionet në dispozicion:

  • -i: nuk do të bëjë dallimin midis shkronjave të mëdha dhe të mëdha.
  • -w: detyroje të gjejë vetëm fjalë specifike.
  • -v: zgjedh linjat që nuk përputhen.
  • -n: tregon numrin e rreshtit me fjalët e kërkuara.
  • -h: heq prefiksin nga emri i skedarit Unix në dalje.
  • -r: kërkon drejtoritë në mënyrë rekursive.
  • -R: si -r por ndiq të gjitha lidhjet simbolike.
  • -l: tregon vetëm emrat e skedarëve me linjat e zgjedhura.
  • -c- Tregon vetëm një numërim për skedar të linjave të zgjedhura.
  • -Ngjyrë: Shfaq modelet që përputhen me ngjyra.

Në imazhin që keni në krye të këtij neni, unë kam kërkuar fjalën "Imazhe" në skedarin "830.desktop" që është në atë rrugë. Siç mund ta shihni, unë kam shkruar:

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

Mbani në mend se në këtë artikull ne do të shkruajmë shembuj që duhet të modifikohen në përputhje me preferencat tona të kërkimit. Duke thënë "File", "Word", etj., Ne do t'i referohemi skedarit me rrugën e tij. Sikur të kisha shkruar "grep Images 830.desktop" do të kisha marrë një mesazh që thoshte se skedari nuk ekziston. Ose kështu do të ishte nëse skedari nuk ishte në direktorinë rrënjë.

Shembuj të tjerë do të ishin:

  • grep -i images /home/pablinux/Documentos/830.desktop, ku "imazhe" do të ishte fjala që duam të gjejmë dhe pjesa tjetër skedari me rrugën e tij. Ky shembull do të kërkonte "imazhe" në skedarin "830.desktop" të pandjeshëm.
  • imazhe grep -R: do të kërkonte të gjitha linjat e një direktorie dhe të gjithë nëndirektoritë e tij ku gjendet fjala "imazhe".
  • grep -c shembull provë.txt: kjo do të na kërkonte dhe do të tregonte numrin e përgjithshëm të herëve që "shembulli" shfaqet në një skedar të quajtur "test.txt.

Me grep mund të kërkojmë edhe skedarë

Nëse ajo që duam është të gjejmë skedarin 830.desktop, ne do të shkruajmë komandën e mëposhtme:

grep 830.desktop

Kjo do të kryejë një kërkoni për skedarin «830.desktop» në dosjen tonë personaleKjo është, nëse skedari është në dosje personale të një përdoruesi tjetër, ai nuk do të gjendet. Kjo është gjëja më normale në botë sepse një përdorues nuk ka leje për të hyrë në përmbajtjen e një tjetri pa fjalëkalimin e tij.

Si të kryeni kërkime rekursive

grep na lejon gjithashtu kryej kërkime subjekt i rregullave ose udhëzimeve të përsëritura. Për shembull, lexoni të gjitha skedarët në secilin direktori që përmbajnë fjalën "Pablinux". Për këtë do të shkruajmë:

grep -r Pablinux /home/

O mirë:

grep -R Pablinux /home/

Ne do të shohim rezultatet për "Pablinux" në një rresht të veçantë të paraprirë nga emri i skedarit në të cilin u gjet. Nëse nuk duam të shohim emrat e skedarëve në daljen e të dhënave do të përdorim opsionin -h (nga "hide"; hide):

grep -h -R Pablinux /home/

Ne mund të bashkohemi me opsionet dhe të shkruajmë "-hR" pa citate.

Si të bëjmë kërkime të sakta të fjalëve

Ndonjëherë ka skedarë që përmbajnë atë që duam të kërkojmë për diçka tjetër. Për shembull, kjo mund të na ndodhë me fjalë të përbëra dhe duke kërkuar për "pyje" mund të gjejmë "roje". Nëse duam gjeni një fjalë të saktë ne do të përdorim opsionin -w:

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

Komanda e mësipërme do të kërkonte për "pyje", duke injoruar rojet, në skedarin "Holiday.txt" në rrugën e treguar. Nëse ajo që duam është të kërkojmë për dy fjalë të ndryshme, ne do të përdorim komandën egrep:

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

Di sa herë një fjalë shfaqet në një skedar

grep është gjithashtu i aftë të numëro sa herë shfaqet një fjalë ne nje dosje. Për këtë do të përdorim opsionin -c:

grep -c prueba /ruta/al/archivo

Shtimi i opsionit - në atë që do të shohim është numri i rreshtit në të cilin shfaqet fjala.

Kërkimet e kundërta

Ne gjithashtu mund të bëjmë të kundërtën, domethënë, kërkoni linja që nuk përmbajnë asnjë fjalë. Për këtë do të përdorim opsionin -v, i cili do të ishte si më poshtë:

grep -v la ruta/al/archivo

Komanda e mësipërme do të shfaqte të gjitha linjat që nuk përmbajnë fjalën "the". Kjo mund të jetë e dobishme në dokumente ose lista në të cilat një fjalë përsëritet shumë herë dhe, për ndonjë arsye, ne kemi nevojë për të hyrë në pjesën tjetër të rreshtave.

Hyrja në informacionin e sistemit me grep

Modeli PC

grep jo vetëm që është i aftë të kërkojë brenda skedarëve. Eshte gjithashtu në gjendje të shikojë informacionin e sistemit. Në pamjen e mëparshme të ekranit mund të shohim se si na tregon se çfarë modeli të PC kemi (e di që nuk është laptopi më i fuqishëm në botë). Për këtë ne kemi përdorur komandën:

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

O mirë:

grep -i 'Model' /proc/cpuinfo

Nëse ajo që duam është të shohim emrat e njësive të diskut do të shkruajmë:

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

Si të renditni vetëm emrat e skedarëve që përputhen

Nëse duam të shohim një listë me vetëm emrat e skedarëve që përputhen me një kërkim, ne do të përdorim opsionin -l siç tregohet më poshtë:

grep -l 'main' *.c

Dhe nëse duam ta shohim fjalën me ngjyra, do të shkruajmë:

grep --color palabra /ruta/al/archivo

Siç mund ta shihni, komanda grep është një mjet shumë i fuqishëm Ia vlen sidomos në rastet kur nuk kujtojmë se ku kemi shkruar diçka ose në programim. Përveç kësaj, kjo na ndihmon të zbulojmë informacionin e sistemit në një mënyrë që do të pëlqejë dashamirët e Terminalit. A ka qenë i dobishëm për ju ky udhëzues mbi komandën për të gjetur tekste grep?


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   nordi dijo

    Hello!
    Kur thoni që Grep përdoret gjithashtu për të kërkuar skedarë, nuk mendoj se është e saktë, sepse nëse përdorni grep EXPRESSION dhe nuk ia kaloni skedarin, ai do të presë hyrjen e të dhënave nga hyrja standarde.
    Sipas faqes manual:
    grep kërkon në FILE të dhëna të dhëna për linja që përmbajnë një përputhje me PATTERN-in e dhënë. Nëse nuk përcaktohet asnjë skedar, ose nëse jepet skedari "-", grep kërkon hyrjen standarde.
    Kjo është arsyeja pse ju mund ta përdorni atë në tubacione, si ai që analizon prodhimin e / proc / cpuinfo duke kaluar prodhimin e kësaj komande si hyrje në grep mund të bëni kërkimin.
    Një përshëndetje

  2.   Ann dijo

    Post shumë i mirë.
    Ju e shpjegoni atë shumë mirë dhe shkoni drejt e në çast.