grep

„Linux egrep“ komanda su pavyzdžiais

„Linux egrep“ komanda su pavyzdžiais
„Egrep“ komanda priklauso „grep“ komandos šeimai, kuri naudojama „Linux“ modelių paieškai. Jei naudojote komandą grep, egrep veikia taip pat, kaip ir grep -E (grep Extended regex '). Egrep nuskaito konkretų failą, eilutę į eilutę ir išspausdina eilutę (-es), kurioje yra paieškos eilutė / reguliarioji išraiška. Šiame straipsnyje mes paaiškinsime 15 naudingų egrep komandų pavyzdžių, kurie padės naujokams ir net ekspertams atlikti prasmingas paieškas sistemoje „Linux“. Mes atlikome šiuos pavyzdžius „Debian 10 Buster“ sistemoje, tačiau juos galima lengvai pakartoti daugumoje „Linux“ sričių.

1 pavyzdys: Konkrečios eilutės paieška faile

Tai yra dažniausiai naudojamas egrep komandos naudojimas. Jūs darote tai, kad nurodote eilutę, kurios norite ieškoti, ir failo pavadinimą, kuriame norite ieškoti tos eilutės. Tada rezultate bus rodoma visa eilutė, kurioje yra ieškoma eilutė.

Sintaksė:

$ egrep „search_string“ failo pavadinimas

Pavyzdys:

$ egrep debian pavyzdžio failas.txt

Šiame pavyzdyje ieškojau žodžio „debian“ nurodytame tekstiniame faile. Galite pamatyti, kaip rezultatuose rodoma visa eilutė, kurioje yra žodis „debian“:

2 pavyzdys: konkrečios eilutės paieška keliuose failuose

Naudodami egrep komandą, galite ieškoti eilutės tarp kelių failų, esančių tame pačiame kataloge. Jūs tiesiog turite būti šiek tiek konkretesnis pateikdamas ieškomų failų „šabloną“. Tai paaiškės pateikus pavyzdį.

Sintaksė:

$ egrep "search_string" failo pavadinimas_pattern

Pavyzdys:

Čia ieškosime žodžio „debian“ visuose .txt failus nurodydami failo pavadinimo šabloną taip:

$ egrep „debian“ *.txt

Komanda išspausdino visas eilutes kartu su failų pavadinimais, kuriuose yra žodis „debian“ iš visų .txt failai dabartiniame kataloge.

3 pavyzdys: Rekursyvi eilutės paieška visame kataloge

Jei norite ieškoti eilutės visuose failuose iš katalogo ir jo pakatalogių, galite tai padaryti naudodami -r vėliavą su komanda egrep.

Sintaksė:

$ egrep -r "search_string" *

Pavyzdys:

Šiame pavyzdyje aš ieškau žodžio „pavyzdys“ viso dabartinio (atsisiuntimų) katalogo failuose.

$ egrep -r "pavyzdys" *

Rezultatuose yra visos eilutės kartu su failų pavadinimais, kuriose yra žodis „pavyzdys“ iš visų failų, esančių atsisiuntimų kataloge, ir jo pakatalogiuose.

4 pavyzdys: didžiųjų ir mažųjų raidžių paieškos atlikimas

Naudodami vėliavą -i, galite naudoti komandą egrep, kad atspausdintumėte rezultatus pagal paieškos eilutę, nesijaudindami dėl jos raidės.

Sintaksė:

$ egrep -i "search_string" failo vardas

Pavyzdys:

Čia ieškau žodžio „debian“ ir noriu, kad rezultatuose būtų rodomos visos failo eilutės, kuriose yra žodis „debian“ arba „Debian“, neatsižvelgiant į jo atvejį.

$ egrep -i "search_string" failo vardas

Galite pamatyti, kaip „-i“ vėliava man padėjo gauti visas eilutes, kuriose yra paieškos eilutė, atliekant paiešką „nejautri“.

5 pavyzdys: Ieškokite eilutės kaip viso žodžio, o ne kaip po eilutės

Kai paprastai ieškote eilutės per egrep, ji išspausdina visus žodžius, kuriuose yra eilutė, kaip eilutę. Pavyzdžiui, ieškant eilutės „įjungta“ bus atspausdinti visi žodžiai, kuriuose yra eilutė „įjungta“, pvz., „Įjungta“, „tik“, „monitorius“, „klonas“ ir kt. Jei norite, kad rezultatuose būtų rodomas tik žodis „įjungtas“ kaip visas žodis, o ne kaip eilutė, galite naudoti -w vėliavą su egrep.

Sintaksė:

$ egrep -w „search_string“ failo vardas

Pavyzdys:

Čia ieškau eilutės „įjungta“ pavyzdiniame faile:

$ egrep -i „on“ samplefile.txt

Ankstesnėje išvestyje galite pamatyti, kad joje taip pat yra žodis „tik“. Tačiau to noriu ne aš, nes ieškau tik žodžio „įjungta“. Taigi, šią komandą naudosiu vietoj jos:

$ egrep -iw „on“ pavyzdinis failas.txt

Dabar mano paieškos rezultatuose yra tik eilutės, kuriose žodis „įjungtas“ yra visas žodis.

6 pavyzdys: spausdinami tik failų pavadinimai, kuriuose yra eilutė

Kartais mes norime ne tik atsisiųsti failų pavadinimus, kuriuose yra tam tikra eilutė, o ne spausdinti eilutes, kuriose ji yra. Tai galima padaryti naudojant vėliavą -l (mažosios raidės L) su komanda egrep.

Sintaksė:

$ egrep -l "search_string" failo pavadinimas_pattern

Pavyzdys:

Čia ieškau eilutės „pavyzdys“ visuose .txt failai dabartiniame kataloge:

$ egrep -l pavyzdys *.txt

Paieškos rezultatai spausdina tik failų, kuriuose yra nurodyta eilutė, pavadinimus.

7 pavyzdys: Iš failo atspausdinkite tik paieškos eilutę

Užuot atspausdinę visą eilutę, kurioje yra paieškos eilutė, galite naudoti egrep komandą, kad išspausdintumėte pačią eilutę. Eilutė bus atspausdinta tiek kartų, kiek ji pasirodys nurodytame faile.

Sintaksė:

$ egrep -o "search_string" failo vardas

Pavyzdys:

Šiame pavyzdyje savo faile ieškau žodžio „Tai“.

$ egrep -o Šis pavyzdinis failas_.txt

Pastaba: Šis komandos naudojimas yra naudingas, kai ieškote eilutės pagal reguliaraus reiškinio modelį. Reguliarias išraiškas išsamiai paaiškinsime viename iš būsimų pavyzdžių.

8 pavyzdys: n eilučių skaičiaus rodymas prieš, po arba aplink paieškos eilutę

Kartais labai svarbu žinoti kontekstą faile, kuriame naudojama konkreti eilutė. Egrep yra naudingas ta prasme, kad jis gali būti naudojamas rodyti eilutę, kurioje yra paieškos eilutė, taip pat konkretų eilučių skaičių prieš, po ir aplink ją.

Tai yra teksto failo pavyzdys, kurį naudosiu paaiškindamas būsimus pavyzdžius:

N eilučių skaičius po paieškos eilutės:

Tokiu būdu naudojant A vėliavą bus rodoma eilutė, kurioje yra paieškos eilutė ir N eilučių skaičius po jos:

$ egrep -A "search_string" failo vardas

Pavyzdys:

$ egrep -A 2 „mėginio“ pavyzdinė byla.txt

N eilučių skaičius prieš paieškos eilutę:

Naudojant B vėliavą tokiu būdu, bus rodoma eilutė, kurioje yra paieškos eilutė ir N eilučių skaičius prieš ją:

$ egrep -B "search_string" failo vardas

Pavyzdys:

$ egrep -B 2 "pavyzdinis" pavyzdinis failas.txt

N eilučių skaičius prieš paieškos eilutę:

Naudojant C vėliavą tokiu būdu, bus rodoma eilutė su paieškos eilute ir N eilučių skaičius prieš ir po jos:

$ egrep -C "search_string" failo vardas

Pavyzdys:

$ egrep -C 2 „mėginio“ pavyzdinis failas.txt

9 pavyzdys: Reguliariosios išraiškos suderinimas failuose

Komanda egrep tampa galingesnė, kai ieškote įprastų išraiškų, o ne vientisų ieškos eilučių faile.

Sintaksė:

$ egrep "RegularExpressions" failo pavadinimas

Leiskite mums paaiškinti, kaip galite naudoti įprastus posakius savo egrep paieškoje:

Kartojimo operatorius Naudokite
? Ankstesnis punktas prieš ? yra neprivaloma ir derinama daugiausia vieną kartą

* Ankstesnis prieš * esantis elementas bus lygus nulį ar daugiau kartų
+ Ankstesnis elementas prieš + bus suderintas vieną ar kelis kartus
n Ankstesnis elementas tiksliai atitinka n kartų.
n, Ankstesnis elementas yra derinamas n ar daugiau kartų
, m Ankstesnis elementas sutampa maksimaliai m kartus
n, m Ankstesnis elementas yra derinamas mažiausiai n kartų, bet ne daugiau kaip m kartus

Pavyzdys:

Šiame pavyzdyje sutampa eilutės, kuriose yra ši išraiška:

pradedant „Gnome“ ir baigiant „programomis“

10 pavyzdys: Paieškos eilutės paryškinimas

Kai nustatote GREP_OPTIONS aplinkos kintamąjį, kaip nurodyta toliau, gausite išvestį su rezultatuose paryškinta paieškos eilute / modeliu:

$ sudo eksportas GREP_OPTIONS = '- spalva = auto' GREP_COLOR = '100; 8'

Tada galite ieškoti eilutės bet kokiu būdu, kurį aprašėme šio straipsnio pavyzdžiuose.

11 pavyzdys: Atlikite paiešką faile

Apversdami paiešką turime omenyje tai, kad komanda egrep spausdina viską, kas yra faile, išskyrus eilutes, kuriose yra paieškos eilutė. Norėdami paaiškinti invertinę paiešką naudodami egrep, naudosime šį failo pavyzdį. Failo turinį išspausdinome naudodami komandą katė:

Sintaksė:

$ egrep -v "search_string" failo vardas

Pavyzdys:

Iš paminėto failo pavyzdžio norime praleisti eilutę su žodžiu „du“ išvestyje, todėl naudosime šią komandą:

$ egrep -v "du" pavyzdinis failas_.txt

Galite pamatyti, kaip išvestyje yra viskas iš pavyzdinio failo, išskyrus antrąją eilutę, kurioje buvo paieškos eilutė „du“.

12 pavyzdys: Atvirkštinės paieškos atlikimas pagal kelis kriterijus / paieškos modelį

Naudodami vėliavą -v, taip pat galite padaryti egrep komandą, kad atliktumėte apverstą paiešką pagal daugiau nei vieną paieškos eilutę / modelį.

Šiam scenarijui paaiškinti naudosime tą patį failo pavyzdį, kurį paminėjome 11 pavyzdyje.

Sintaksė:

$ egrep -v -e "search_string" / "pattern" -e "search_string" / "pattern"
… failo pavadinimas

Pavyzdys:

Iš mūsų paminėto failo pavyzdžio norime praleisti eilutę (-es), kurioje yra žodžiai „vienas“ ir „du“, todėl naudosime šią komandą:

$ egrep -v -e „vienas“ -e „du“ pavyzdinis failas_.txt

Pateikėme du žodžius, kad praleistume naudodamiesi žyma -e, todėl išvestis bus rodoma taip:

13 pavyzdys: eilučių, atitinkančių paieškos eilutę, skaičiaus spausdinimas

Užuot spausdinę ieškomą eilutę iš failo ar eilučių, kuriose yra failas, galite naudoti egrep komandą, kad suskaičiuotumėte ir atspausdintumėte eilučių skaičių, atitinkantį eilutę. Šį skaičių galima gauti naudojant -c vėliavą su komanda egrep.

Sintaksė:

$ egrep -c "search_string" failo vardas

Pavyzdys:

Šiame pavyzdyje vėliavą -c naudosime norėdami suskaičiuoti eilučių, kuriose yra žodis „This“, pavyzdiniame faile, skaičių:

$ egrep -c „Šis“ failo pavadinimas

Čia taip pat galite naudoti invertuotą paieškos funkciją, norėdami suskaičiuoti ir atspausdinti eilučių, kuriose nėra paieškos eilutės, skaičių: 

$ grep -v -c "search_string" failo vardas

14 pavyzdys: rodomas eilutės numeris ten, kur sutampa eilutė

Naudodami vėliavą -n, galite padaryti komandą egrep, kad atspausdintumėte suderintą eilutę kartu su eilutės numeriu, kuriame yra paieškos eilutė.

Sintaksė:

$ grep -n "search_string" failo vardas

Pavyzdys:

$ grep -n „This“ samplefile_.txt

Galite pamatyti, kaip eilutės numeriai rodomi pagal paieškos rezultatus.

15 pavyzdys: rodoma failo pozicija, kurioje sutampa paieškos eilutė

Jei norite sužinoti failo vietą, kurioje yra paieškos eilutė, galite naudoti -b vėliavą su komanda egrep.

$ grep -o -b "search_string" failo vardas

Pavyzdys:

$ grep -o -b „This“ samplefile_.txt

Paieškos rezultatai atspausdina failo, kuriame yra paieškos žodis, baito poslinkį.Tai buvo išsamus egrep komandos naudojimas. Naudodami šiame straipsnyje paaiškintą vėliavų derinį, galite atlikti prasmingesnes ir sudėtingesnes savo failų paieškas.

Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...
Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...
Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...