Näide 1: kindla stringi otsimine failist
See on käsu egrep kõige tavalisem kasutamine. Mida teete, on see, et määrate stringi, mida soovite otsida, ja failinime, millest soovite stringi otsida. Seejärel kuvatakse tulemuses kogu rida, mis sisaldab otsitud stringi.
Süntaks:
$ egrep faili "otsingu_string" nimiNäide:
$ egrep debiani näidisfail.txtSelles näites otsisin määratud tekstifailist sõna “debian”. Näete, kuidas tulemustes kuvatakse kogu rida, mis sisaldab sõna "debian":
Näide 2: kindla stringi otsimine mitmest failist
Käsuga egrep saate stringi otsida mitme samas kataloogis asuva faili hulgast. Otsitavate failide "mustri" esitamisel peate lihtsalt olema veidi täpsem. See saab selgemaks meie toodud näite abil.
Süntaks:
$ egrep "otsingu_string" failinime_musterNäide:
Siit otsime kõigist sõnadest sõna „debian” .txt-failid, määrates failinime mustri järgmiselt:
$ egrep “debian” *.txt
Käsk on printinud kõik read koos failinimedega, mis sisaldavad sõna "debian" kõigist .txt-failid praeguses kataloogis.
Näide 3: Stringi rekursiivne otsimine kogu kataloogist
Kui soovite stringi otsida kataloogi ja selle alamkataloogide kõikidest failidest, saate seda teha lipu -r abil käsuga egrep.
Süntaks:
$ egrep -r "otsingu_string" *Näide:
Selles näites otsin kogu praeguse kataloogi (allalaadimised) failidest sõna "proov".
$ egrep -r "proov" *
Tulemused sisaldavad kõiki ridu koos failinimedega, mis sisaldavad sõna "näidis" kõigist kataloogi Allalaadimised failidest ja selle alamkataloogidest.
Näide 4: Suur- ja väiketähtedeta otsingu teostamine
Lipuga -i saate egrep-käsu abil printida tulemused otsingustringi põhjal, ilma et peaksite selle juhtumi pärast muretsema.
Süntaks:
$ egrep -i "otsingu_string" failinimiNäide:
Siinkohal otsin sõna „debian” ja soovin, et tulemused kuvaksid failist kõik read, mis sisaldavad sõna „debian” või „Debian”, olenemata selle juhtumist.
$ egrep -i "otsingu_string" failinimi
Näete, kuidas -i lipp aitas mind otsingutringi sisaldavate ridade hankimisel suurtähetundliku otsingu abil.
Näide 5: stringi otsimine täissõnana, mitte alamstringina
Kui tavaliselt otsite stringi egrepi kaudu, prindib see kõik stringi sisaldavad sõnad alamstringina. Näiteks, kui otsite stringi „sees”, prinditakse kõik sõnad, mis sisaldavad stringi „sees”, nagu „sees”, „ainult”, „monitor”, „kloon” jne. Kui soovite, et tulemustes kuvatakse ainult sõna “sees” täissõnana, mitte alamstringina, võite kasutada -w lippu egrepiga.
Süntaks:
$ egrep -w faili "otsingu_string" nimiNäide:
Siin otsin näidisfailis stringi „sees”:
$ egrep -i "on" näidisfail.txt
Ülaltoodud väljundist näete, et see sisaldab ka sõna "ainult". Kuid see pole see, mida ma tahan, sest ma otsin ainult sõna "sees". Nii et see on käsk, mida ma selle asemel kasutan:
Näidisfail $ egrep -iw "on".txt
Nüüd sisaldavad minu otsingutulemid ainult ridu, mis sisaldavad sõna „sees” tervikuna.
Näide 6: ainult stringi sisaldavate failinimede printimine
Mõnikord tahame selle asemel, et trükkida seda sisaldavaid ridu, ainult failinimed, mis sisaldavad konkreetset stringi. Seda saab teha lipuga -l (väiketähed L) käsuga egrep.
Süntaks:
$ egrep -l "otsingu_string" failinime_musterNäide:
Siin otsin stringi “proov” kõigist .txt-failid praeguses kataloogis:
$ egrep -l proov *.txt
Otsingutulemid trükivad ainult määratud stringi sisaldavate failide nime.
Näide 7: failist ainult otsingustringi printimine
Selle asemel, et printida kogu otsingustringi sisaldav rida, saate stringi printimiseks kasutada käsku egrep. String trükitakse mitu korda see kuvatakse määratud failis.
Süntaks:
$ egrep -o "otsingu_string" failinimiNäide:
Selles näites otsin oma failist sõna „See”.
$ egrep -o See näidisfail_.txt
Märkus. See käsu kasutamine on mugav, kui otsite stringi regulaaravaldise mustri põhjal. Regulaaravaldisi selgitame üksikasjalikult ühes järgmistest näidetest.
Näide 8: n rea rea kuvamine enne, pärast või ümber otsingustringi
Mõnikord on väga oluline teada konteksti failis, kus kasutatakse konkreetset stringi. Egrep on kasulik selles mõttes, et seda saab kasutada otsingu stringi sisaldava rea kuvamiseks ja ka kindla arvu ridade jaoks enne, pärast ja selle ümber.
See on näidisfail, mida kasutan tulevaste näidete selgitamiseks:
N rida arv pärast otsingustringi:
Lipu A kasutamisel järgmisel viisil kuvatakse rida, mis sisaldab otsingu stringi ja N rida selle järel:
$ egrep -ANäide:
$ egrep -A 2 "proovi" näidisfail.txt
N rida enne otsistringi:
Kasutades lippu B järgmisel viisil, kuvatakse rida, mis sisaldab otsingu stringi ja N rida selle ees:
$ egrep -BNäide:
$ egrep -B 2 "proovi" proovifail.txt
N rida enne otsingustringi:
C-lipu järgmisel viisil kasutamisel kuvatakse rida, mis sisaldab otsingu stringi, ja N rida enne ja pärast seda:
$ egrep -CNäide:
$ egrep -C 2 "proovi" proovifail.txt
Näide 9: Regulaaravaldise sobitamine failides
Egrep-käsk muutub võimsamaks, kui otsite failis kindlate otsingustringide asemel regulaaravaldisi.
Süntaks:
$ egrep "RegularExpressions" failinimiSelgitage, kuidas saate regulaaravaldisi egrepi otsingus kasutada:
Kordusoperaator | Kasutage |
? | Eelmine punkt enne ? on valikuline ja sobitatakse maksimaalselt üks kord
|
* | Eelmisele üksusele enne * sobitatakse null või rohkem korda |
+ | Eelmine üksus enne + sobitatakse üks või mitu korda |
n | Eelnev üksus on täpselt mitu korda n-ga vastavuses. |
n, | Eelnev üksus sobitatakse n või rohkem korda |
, m | Eelmisele üksusele sobitatakse maksimaalselt m korda |
n, m | Eelnev üksus sobitatakse vähemalt n korda, kuid mitte rohkem kui m korda |
Näide:
Järgmises näites sobivad järgmised avaldist sisaldavad read:
alustades tähega “Gnome” ja lõpetades “programmidega”
Näide 10: Otsingu stringi esiletõstmine
Kui määrate keskkonnamuutuja GREP_OPTIONS nagu allpool, saate väljundi tulemustes esile tõstetud otsingustringi / mustriga:
$ sudo eksport GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'Seejärel saate stringi otsida mis tahes viisil, mida oleme kirjeldanud selle artikli näidetes.
Näide 11: failis pöördotsingu tegemine
Pöördotsingu all mõtleme seda, et käsk egrep prindib failis kõik, välja arvatud read, mis sisaldavad otsingustringi. Kasutame egrepi abil pöördotsingu selgitamiseks järgmist näidisfaili. Oleme faili sisu printinud käsu cat abil:
Süntaks:
$ egrep -v "otsingu_string" failinimiNäide:
Mainitud näidisfailist soovime välja jätta rea, mis sisaldab sõna "kaks", seetõttu kasutame järgmist käsku:
$ egrep -v "two" samplefile_.txt
Näete, kuidas väljund sisaldab kõike näidisfailist, välja arvatud teine rida, mis sisaldas otsingustringi „kaks”.
Näide 12: Pöördotsingu sooritamine mitme kriteeriumi / otsingumustri põhjal
Lipuga -v saate teha ka käsu egrep pööratud otsingu tegemiseks, mis põhineb rohkem kui ühel otsingustringil / mustril.
Selle stsenaariumi selgitamiseks kasutame sama näidisfaili, mida mainisime näites 11.
Süntaks:
$ egrep -v -e "otsingu_string" / "muster" -e "otsingu_string" / "muster”… faili nimi
Näide:
Mainitud näidisfailist soovime välja jätta rea (d), mis sisaldavad väljundis sõnu "üks" ja "kaks", seetõttu kasutame järgmist käsku:
$ egrep -v -e "üks" -e "kaks" näidisfail_.txtOleme andnud kaks sõna -e lipu väljajätmiseks, seetõttu kuvatakse väljund järgmiselt:
Näide 13: otsingustringile vastavate ridade arvu printimine
Selle asemel, et otsida string failist või seda sisaldavatelt ridadelt, võite käsuga egrep loendada ja printida stringiga sobitatud ridade arvu. Selle loendi saab tuua lipuga -c käsuga egrep.
Süntaks:
$ egrep -c "otsingu_string" failinimiNäide:
Selles näites kasutame lipu -c, et lugeda meie näidisfailis sõna "See" sisaldavate ridade arv:
$ egrep -c "See" failinimi
Siin saate ka otsingu pööramise funktsiooni kasutada nende ridade arvu lugemiseks ja printimiseks, mis ei sisalda otsingu stringi:
$ grep -v -c "otsingu_string" failinimi
Näide 14: rea numbri kuvamine, kus string sobib
Lipuga -n saate panna käsu egrep sobiva rea printimiseks koos rea stringiga, mis sisaldab otsingu stringi.
Süntaks:
$ grep -n "otsingu_string" failinimiNäide:
$ grep -n "See" näidisfail_.txt
Näete, kuidas reanumbreid kuvatakse otsingutulemuste suhtes.
Näide 15: failis positsiooni kuvamine, kus otsing string sobib
Kui soovite teada faili asukohta, kus otsingu string on olemas, võite kasutada käsku egrep lippu -b.
$ grep -o -b "search_string" failinimiNäide:
$ grep -o -b "See" näidisfail_.txt
Otsingutulemid printivad faili baitide nihke, kus otsingusõna on olemas.See oli käsu egrep üksikasjalik kasutamine. Selles artiklis selgitatud lippude kombinatsiooni abil saate oma failides teha sisukamaid ja keerukamaid otsinguid.