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
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?
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
Labai geras postas.
Jūs tai labai gerai paaiškinate ir einate tiesiai prie reikalo.