grep

Linuxi egrepi käsk koos näidetega

Linuxi egrepi käsk koos näidetega
Käsk egrep kuulub käsu grep perekonda, mida kasutatakse mustrite otsimiseks Linuxis. Kui olete kasutanud käsku grep, töötab egrep samamoodi nagu grep -E (grep Extended regex '). Egrep skannib kindlat faili, rida reale ja prindib rida (d), mis sisaldavad otsingu stringi / regulaaravaldist. Selles artiklis selgitame 15 kasulikku näidet egrepi käskudest, mis aitavad algajatel ja isegi asjatundjatel Linuxis sisukaid otsinguid teha. Oleme neid näiteid teinud Debiani 10 Busteri süsteemis, kuid neid saab hõlpsasti kopeerida enamikus Linuxi distros.

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" nimi

Näide:

$ egrep debiani näidisfail.txt

Selles 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_muster

Nä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" failinimi

Nä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" nimi

Nä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_muster

Nä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" failinimi

Nä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 -A "search_string" failinimi

Nä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 -B "search_string" failinimi

Nä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 -C "search_string" failinimi

Nä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" failinimi

Selgitage, 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" failinimi

Nä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_.txt

Oleme 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" failinimi

Nä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" failinimi

Nä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" failinimi

Nä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.

Jäljendage hiireklikke, hõljutades hiirega klõpsutut hiirt Windows 10-s
Hiire või klaviatuuri kasutamine liigses kasutamises vales asendis võib põhjustada palju terviseprobleeme, sealhulgas tüve, karpaalkanali sündroom ja ...
Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...
Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...