Selles artiklis selgitame grep -utiliidi kasutamist erinevate näidetega. Kasutame Debian 10 -d selles artiklis nimetatud käskude ja meetodite selgitamiseks.
Grepi installimine
Grep on installitud enamikku Linuxi distributsioonidest. Kuid juhul, kui see teie süsteemist puudub, saate selle terminali installida, kasutades järgmist meetodit:
$sudo apt-get install haaret
Grepi kasutamine
Siin on käsu grep põhisüntaks. See algab grep -ga, millele järgnevad mõned valikud ja otsingukriteeriumid ning lõpeb seejärel faili nimega.
$haaret [võimalusi]MUSTER[FILE ...]
Otsi faile
Faili nime otsimiseks kataloogist, mis sisaldab konkreetset stringi, saate grep -i kasutada järgmiselt.
$ls -neid | haaret -minastring
Näiteks stringi sisaldava failinime otsimiseks test , käsk oleks järgmine:
$ls-neid| haaret–ItestSee käsk loetleb kõik stringid sisaldavad failid test .
Otsige failist stringi
Konkreetsest failist stringi otsimiseks võite kasutada järgmist käsusüntaksi:
$haaretstringi failinimiNäiteks stringi otsimiseks test nimega failis testfail1 , oleme kasutanud järgmist käsku :
$haarettöötaja testfail 1Ülaltoodud väljund on lause tagastanud testfail1 mis sisaldab stringi töötaja .
Otsige stringi mitmest failist
Stringi otsimiseks mitmest failist saate kasutada järgmist käsusüntaksi:
$haaretstring failinimi1 failinimi2Näiteks stringi töötaja otsimiseks meie kahest failist testfile1 ja testfile2 oleme kasutanud järgmist käsku:
$haarettöötaja testfail1 testfail2Ülaltoodud käsk loetleb kõik read, mis sisaldavad stringi töötajat nii failidest testfile1 kui ka testfile2.
Võite kasutada ka metamärki, kui kõik failinimed algavad sama tekstiga.
$haaretstringi failinimi*Näiteks kui võtame ülaltoodud näite, milles meie failinimed olid testfail1 ja testfail2 , käsk oleks järgmine:
$haarettöötaja testfail*Otsige failist stringi, ignoreerides stringi väiketähti
Kõige sagedamini olete sellega kokku puutunud, kui otsite midagi grepi abil, kuid ei saa väljundit. See juhtub juhtumi mittevastavuse tõttu stringi otsimisel. Nagu meie näites, kui kasutame ekslikult Töötaja selle asemel töötaja , see tagastab nulli, kuna meie fail sisaldab stringi töötaja väiketähtedega.
Kui soovite grepi käsutada, et see ignoreeriks otsingustringi, kasutage grei järel lippu –i järgmiselt:
$haaret–I stringi failinimiKasutades lippu –i, viib käsk läbi väiketundetundliku otsingu ja tagastab kõik stringid sisaldavad read töötaja selles arvesse võtmata on tähed suured või väikesed.
Otsige regulaaravaldise abil
Õige kasutamise korral on regulaaravaldis grepis väga tõhus funktsioon. Käsu Grep abil saate määratleda regulaaravaldise alguse ja lõpu märksõnaga. Seda tehes ei pea te kogu rida käsuga grep tippima. Sel eesmärgil saab kasutada järgmist süntaksit.
$haaretalustav märksõna.*Ending Keyword failinimiNäiteks, et otsida failist testfile1 rida, mis algab stringiga ja lõpeb stringiandmetega, oleme kasutanud järgmist käsku:
$haaretseda.*andmete testfail1See prindib kogu rea lehelt testfail1 mis sisaldab väljendit (algusmärksõna see ja lõpu märksõna andmed).
Printige teatud arv ridu pärast/enne otsingustringi
Samuti saate kuvada faili ridade arvu enne/pärast stringivastumist koos sobitatud stringi endaga. Sel eesmärgil saab kasutada järgmist süntaksit.
$haaret -TO <N>stringi failinimiSee kuvab N arvu ridu pärast seda, kui string on sobitatud määratud failis, sealhulgas sobitatud string.
Näiteks on see meie näidisfail nimega testfail2 .
Järgmine käsk väljastab stringi sisaldava sobitatud rea töötaja , koos sellele järgneva 2 reaga.
$haaret-TO2–I töötaja testfail2Samamoodi kasutage N -arvu ridade kuvamiseks enne vastavat stringi konkreetses failis järgmist süntaksit:
$haaret -B <N>stringi failinimiKonkreetse faili stringide ümber N -arvu ridade kuvamiseks kasutage järgmist süntaksi:
$haaret -C <N>stringi failinimiOtsingu esiletõstmine
Grep prindib vaikimisi sobitatud read, kuid ei näita, milline rea osa sobib. Kui kasutate grepiga valikut -color, näitab see, kus teie failis töötlusstringid ilmuvad. Grep kasutab vaikimisi esiletõstmiseks punast värvi.
Sel eesmärgil saab kasutada järgmist süntaksit.
$haaretstringi failinimi--värvVastete arvu lugemine
Kui soovite lugeda, mitu korda konkreetne sõna konkreetses failis esineb, võite kasutada valikut grep koos –c. See tagastab ainult vastete arvu, mitte vasteid ise. Sel eesmärgil saab kasutada järgmist süntaksit.
$haaret–C stringi failinimiMeie näidisfail näeb välja selline:
Allpool on näide käsust, mis tagastab sõna mitu korda faili ilmus failis nimega testfail3 .
Pööratud otsing
Mõnikord soovite teha vastupidise otsingu, mis kuvab kõik read, välja arvatud sisendile vastavad read. Selleks kasutage lihtsalt lippu –v, millele järgneb grep:
$haaret–V stringi failinimiNäiteks faili kõigi ridade kuvamiseks testfail3 mis ei sisalda neis sõna konto, oleme kasutanud järgmist käsku:
$haaret–V konto testfail3Grepi kasutamine koos teiste käskudega
Grepi saab kasutada ka vajaliku tulemuse filtreerimiseks erinevatest käskudest. Näiteks alates apt - installitud loend käsu väljundit, soovite leida ainult automaatselt installitud paketid, saate tulemuse grep abil välja filtreerida järgmiselt:
$asjakohane-paigaldatudnimekirja| haaretautomaatne
Samamoodi pakub lscpu CPU kohta üksikasjalikku teavet. Kui teid lihtsalt huvitab protsessori arhitektuuri puudutav teave, saate selle järgmise käsu abil välja filtreerida:
$lscpu| haaretArhitektuurSelles artiklis oleme kirjeldanud mõningaid näiteid, mis aitavad teil mõista käske grep ja selle kasutamist erinevates tingimustes. Grep -käsu tugev haare võib säästa palju aega, kui peate vaatama suuri konfiguratsiooni- või logifaile ja nende kaudu kasulikku teavet lugema.