Selles artiklis selgitame grep-utiliidi kasutamist erinevate näidetega. Selles artiklis mainitud käskude ja meetodite selgitamiseks kasutame Debian 10.
Grepi installimine
Grep on installitud enamusesse Linuxi distributsioonidesse. Kuid juhul, kui see teie süsteemist puudub, saate selle installida terminalis järgmise meetodi abil:
$ sudo apt-get install grepGrepi kasutamine
Siin on käsu grep põhiline süntaks. See algab grep-iga, millele järgnevad mõned valikud ja otsingukriteeriumid, ja lõpeb seejärel failinimega.
$ grep [valikud] MUSTEL [FILE ...]Failide otsimine
Failinime otsimiseks kataloogist, mis sisaldab spetsiifilist stringi, saate grepi kasutada järgmiselt:
$ ls -l | grep -i “stringNäiteks failinime otsimiseks, mis sisaldab stringi “test“, Käsk oleks:
$ ls -l | grep -i testSee käsk loetleb kõik failid, mis sisaldavad stringi “test”.
Otsige failist stringi
Konkreetsest failist stringi otsimiseks võite kasutada järgmist käskude süntaksit:
$ grep "string" failinimiNäiteks stringi otsimisekstest”Failis nimega testfail1, oleme kasutanud järgmist käsku:
$ grep "töötaja" testfail1
Ülaltoodud väljund on lause lause tagastanud testfail1 mis sisaldab stringi „töötaja”.
Stringi otsimine mitmest failist
Stringi otsimiseks mitmest failist saate kasutada järgmist käskude süntaksit:
$ grep “string” failinimi1 failinimi2Näiteks stringi “töötaja” otsimiseks meie kahest failist testfile1 ja testfile2 oleme kasutanud järgmist käsku:
$ grep “töötaja” testfail1 testfail2
Ülaltoodud käsk loetleb kõik read, mis sisaldavad stringi “töötaja” nii failidest testfile1 kui testfile2.
Võite kasutada ka metamärke, kui kõik failinimed algavad sama tekstiga.
$ grep "string" failinimi *Nagu, kui võtame ülaltoodud näite, milles meie failinimed olid testfail1 ja testfile2 , käsk oleks:
$ grep "töötaja" testfail *
Otsige failist stringi, ignoreerides stringi suurtähti
Kõige sagedamini olete sellega kokku puutunud, kui otsite midagi grepi abil, kuid ei saa väljundit. See juhtub stringi otsimisel juhtumite mittevastavuse tõttu. Nagu meie näites, kui me ekslikult kasutameTöötaja" selle asemel "töötaja”, Tagastab see nulli, kuna meie fail sisaldab stringi“töötaja”Väikeste tähtedega.
Võite grepile öelda, et otsingustringi juhtumeid ignoreeritakse, kasutades grepi järel lippu -i järgmiselt:
$ grep -i "string" failinimi
Kasutades lippu -i, teostab käsk väiketähteta otsingu ja tagastab kõik read, mis sisaldavad stringi “töötaja”Selles, arvestamata tähed, on suured või väikesed.
Otsige regulaaravaldise abil
Õige kasutamise korral on regulaarne avaldis grepis väga tõhus funktsioon. Grepi käsuga saate määratleda regulaaravaldise algus- ja lõpumärksõnadega. Seda tehes ei pea te tervet rida käsuga grep tippima. Selleks saab kasutada järgmist süntaksit.
$ grep “algusmärksõna.* LõppMärksõna ”failinimiNäiteks failis testfile1 rida otsimiseks, mis algab stringiga „this” ja lõpeb stringiga „data”, oleme kasutanud järgmist käsku:
$ grep "see.* andmed ”testfail1
See prindib kogu rea reast testfail1 sisaldab väljendit (algusmärksõna „see” ja lõpumärksõna „andmed”).
Printige otsingurea ette / ette konkreetne arv ridu
Samuti saate kuvada failis konkreetse ridade arvu enne / pärast stringivastet koos sobitatud stringi endaga. Sel eesmärgil saab kasutada järgmist süntaksit:
$ grep -APärast stringi sobitamist määratud failis koos sobitatud stringiga kuvatakse N rida.
Näiteks on see meie näidisfail nimega testfail2.
Järgmine käsk väljastab sobitatud rea, mis sisaldab stringi “töötaja”Koos 2 selle järel oleva reaga.
$ grep -A 2 -i "töötaja" testfail2
Samamoodi kasutage järgmist süntaksit, et kuvada kindlas failis N-i ridade arv enne sobitatud stringi
$ grep -BN rea rea kuvamiseks stringi ümber kindlas failis kasutage järgmist süntaksit:
$ grep -COtsingu esiletõstmine
Grep vaikimisi printib sobivad read, kuid ei näita, milline rea osa on sobitatud. Kui kasutate grepiga suvandit -color, näitab see, kus töötlusstringid teie failis ilmuvad. Grep kasutab vaikimisi esiletõstmiseks punast värvi.
Sel eesmärgil saab kasutada järgmist süntaksit:
$ grep "string" failinimi - värv
Mängude arvu lugemine
Kui soovite kokku lugeda, mitu korda konkreetne sõna konkreetses failis ilmub, võite kasutada valikut grep with -c. See tagastab ainult vastete arvu, mitte vastete enda. Sel eesmärgil saab kasutada järgmist süntaksit:
$ grep -c "string" failinimiSee on meie näidisfaili välimus:
Järgnevalt on toodud näide käsust, mis tagastas sõna mitu korda faili ilmus faili nimega testfail3.
Pööratud otsing
Mõnikord soovite teha vastupidist otsingut, mis kuvab kõik read, välja arvatud need, mis vastavad sisendile. Selleks kasutage lihtsalt -v lippu, millele järgneb grep:
$ grep -v "string" failinimiNäiteks faili kõigi ridade kuvamiseks testfail3 milles pole sõna „konto”, oleme kasutanud järgmist käsku:
$ grep -v "konto" testfail3
Grepi kasutamine teiste käskudega
Grepi saab kasutada ka vajaliku tulemuse filtreerimiseks erinevatest käskude väljunditest. Näiteksapt -installitud loend ” käsu väljund, soovite leida ainult automaatselt installitud paketid, võite filtreerida tulemuse grepi abil järgmiselt:
$ apt - installitud loend | grep automaatne
Samamoodi pakub lscpu üksikasjalikku teavet protsessori kohta. Kui teid huvitab lihtsalt protsessori arhitektuuri puudutav teave, saate selle järgmise käsu abil välja filtreerida:
$ lscpu | grep Arhitektuur
Selles artiklis oleme kirjeldanud mõningaid näiteid, mis aitavad teil mõista grep-käske ja nende kasutamist erinevates tingimustes. Grep-käsu tugev haare võib säästa palju aega, kui peate vaatama suuri konfiguratsiooni- või logifaile ja kasutama nende kaudu kasulikku teavet.