„Grep“ komanda: galingas įrankis norint rasti tekstą iš terminalo

Grep komanda

Beveik kiekvienas, turintis kompiuterį arba dirbantis su juo, žinos spartųjį klavišą „Ctrl + F“, kad rastų tekstą. „F“ yra kilęs iš „Find“, „to find“ anglų kalba ir gali būti naudojamas, pavyzdžiui, norint rasti tekstą tinklalapyje. Šis spartusis klavišas taip pat yra daugelyje programų, yra programų, kurios naudoja „B“ paieškai, tačiau šios nuorodos veikia tik tuo atveju, jei esame programos viduje ir atidarę failą. „Linux“ sistemoje mes turime labai galingus įrankius, kuriuos galime paleisti iš terminalo ir, jei norime suraskite bet kokį tekstą, kuris yra mūsų komandoje, mes naudosime komandą grep.

grep Tai komanda, kuri padės mums rasti tekstą nurodytame faile. Jo pavadinimas kilęs iš g / re / p, komandos, veikiančios kažkam panašiam Unix / Linux teksto redaktoriuje. Kaip ir daugelis kitų komandų, grep Turi daug galimos parinktys, kurias pridėsime raidžių pavidalu ir kiekvienas atliks skirtingą užduotį. Sujungę šias parinktis, galėsime atlikti sudėtingas paieškas viename ar daugiau failų. Čia mes parodysime viską, ką reikia žinoti.

su grep bet kuriame faile rasime bet kokio teksto

Pirmiausia paaiškinsime galimas parinktis:

  • -i: neskirs didžiųjų ir mažųjų raidžių.
  • -w: priversti jį rasti tik konkrečius žodžius.
  • -v: parenka nesutampančias eilutes.
  • -n: rodo eilutės numerį su prašomais žodžiais.
  • -h: pašalina prefiksą iš „Unix“ failo pavadinimo išvestyje.
  • -r: ieško katalogų rekursyviai.
  • -R: patinka -r, bet laikykitės visų nuorodų.
  • -l: rodo tik failų pavadinimus su pasirinktomis eilutėmis.
  • -c- Viename faile rodo tik vieną pasirinktų eilučių skaičių.
  • -Spalva: Rodo atitinkamus modelius spalvomis.

Paveikslėlyje, kurį jūs skiriate šiam straipsniui, ieškojau to kelio failo „830.desktop“ žodžio „Vaizdai“. Kaip matote, aš parašiau:

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

Atminkite, kad šiame straipsnyje mes parašysime pavyzdžius, kuriuos reikia modifikuoti pagal mūsų paieškos nuostatas. Sakydami „File“, „Word“ ir kt., Mes nurodysime failą su jo keliu. Jei būčiau ką tik parašęs „grep Images 830.desktop“, būčiau gavęs pranešimą, kad failo nėra. Arba taip bus, nebent failas būtų šakniniame kataloge.

Kiti pavyzdžiai būtų:

  • grep -i vaizdai /home/pablinux/Documentos/830.desktop, kur „vaizdai“ būtų žodis, kurį norime rasti, o likęs failas su keliu. Šis pavyzdys ieškos „vaizdai“ faile „830.desktop“ didžiosios ir mažosios raidės.
  • grep -R vaizdai: jis ieškotų visose katalogo eilutėse ir visuose pakatalogiuose, kur randamas žodis "vaizdai".
  • grep -c pavyzdys test.txt: tai ieškotų mūsų ir parodytų, kiek kartų „pavyzdys“ rodomas faile, pavadintame „test.txt“.

Su grep taip pat galime ieškoti failų

Jei norime rasti failą 830.desktop, parašysime šią komandą:

grep 830.desktop

Tai atliks a ieškokite failo «830.desktop» asmeniniame aplankeTai yra, jei failas yra kito vartotojo asmeniniame aplanke, jis nebus rastas. Tai yra pats normaliausias dalykas pasaulyje, nes vartotojas neturi leidimo pasiekti kito turinį be savo slaptažodžio.

Kaip atlikti rekursines paieškas

grep tai mums taip pat leidžia atlikti paieškas pagal pasikartojančias taisykles ar gaires. Pavyzdžiui, perskaitykite visus kiekvieno katalogo failus, kuriuose yra žodis „Pablinux“. Tam mes parašysime:

grep -r Pablinux /home/

O gerai:

grep -R Pablinux /home/

„Pablinux“ rezultatus matysime atskiroje eilutėje, prieš kurią nurodomas failo, kuriame jis buvo rastas, pavadinimas. Jei nenorime matyti failų pavadinimų duomenų išvestyje, naudosime parinktį -h (iš "paslėpti"; paslėpti):

grep -h -R Pablinux /home/

Mes galime prisijungti prie parinkčių ir parašyti „-hR“ be kabučių.

Kaip atlikti tikslius žodžių ieškojimus

Kartais yra failų, kuriuose yra tai, ko norime ieškoti kažko kito. Pavyzdžiui, mums taip gali nutikti sudėtiniais žodžiais ir ieškodami „miškų“ galime rasti „reindžerių“. Jei norime rasti tikslų žodį naudosime parinktį -w:

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

Pirmiau nurodyta komanda ieškojo „miškai“, ignoruodami reindžerius, faile „Holidays.txt“ nurodytame kelyje. Jei norime ieškoti dviejų skirtingų žodžių, naudosime komandą egrep:

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

Žinokite, kiek kartų faile rodomas žodis

grep tai taip pat sugeba suskaičiuok, kiek kartų pasirodo žodis byloje. Tam naudosime parinktį -c:

grep -c prueba /ruta/al/archivo

Pridėjus parinktį -n, pamatysime eilutės, kurioje rodomas žodis, skaičių.

Atvirkštinės paieškos

Mes taip pat galime elgtis priešingai, tai yra ieškoti eilučių, kuriose nėra žodžio. Tam naudosime parinktį -v, kuri būtų tokia:

grep -v la ruta/al/archivo

Pirmiau pateiktoje komandoje bus rodomos visos eilutės, kuriose nėra žodžio „the“. Tai gali būti naudinga dokumentuose ar sąrašuose, kuriuose žodis kartojamas daug kartų, ir dėl kažkokių priežasčių turime prieiti prie likusių eilučių.

Prieiga prie sistemos informacijos naudojant grep

PC modelis

grep ne tik gali ieškoti failuose. Taip pat gali peržiūrėti sistemos informaciją. Ankstesnėje ekrano kopijoje galime pamatyti, kaip ji mums parodo, kokį kompiuterio modelį turime (žinau, kad tai nėra pats galingiausias nešiojamas kompiuteris pasaulyje). Tam mes naudojome komandą:

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

O gerai:

grep -i 'Model' /proc/cpuinfo

Jei norime pamatyti disko vienetų pavadinimus, kuriuos parašysime:

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

Kaip išvardyti tik atitinkančius failų pavadinimus

Jei norime pamatyti sąrašą tik su failų, atitinkančių paiešką, pavadinimais, naudosime parinktį -l, kaip parodyta žemiau:

grep -l 'main' *.c

Ir jei norime pamatyti žodį spalvomis, parašysime:

grep --color palabra /ruta/al/archivo

Kaip matote, komanda grep yra labai galingas įrankis Ypač verta tais atvejais, kai neprisimename, kur ką parašėme ar programuodami. Be to, tai padeda mums sužinoti informaciją apie sistemą taip, kaip patiks Terminalo mėgėjams. Ar šis komandos tekstų paieškos vadovas jums buvo naudingas grep?


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   nordi sakė

    Sveiki!
    Kai sakote, kad „Grep“ taip pat naudojamas failų paieškai, nemanau, kad tai teisinga, nes jei paleisite „grep EXPRESSION“ ir neperduosite failo, jis lauks duomenų įvesties iš standartinio įvesties.
    Pagal vadovo puslapį:
    „grep“ ieško įvardytų įvesties FILE eilučių, kuriose yra atitikimas nurodytam modeliui. Jei failai nenurodyti arba jei failas yra „-“, „grep“ ieško standartinės įvesties.
    Štai kodėl galite jį naudoti vamzdynuose, pavyzdžiui, tame, kuris analizuoja / proc / cpuinfo išvestį, perduodamas šios komandos išvestį kaip įvestį grep, galite atlikti paiešką.
    Sveikinimas

  2.   ana sakė

    Labai geras postas.
    Jūs tai labai gerai paaiškinate ir einate tiesiai prie reikalo.