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 pavadinimasPavyzdys:
$ 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_patternPavyzdys:
Č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 vardasPavyzdys:
Č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 vardasPavyzdys:
Č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_patternPavyzdys:
Č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 vardasPavyzdys:
Š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 -APavyzdys:
$ 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 -BPavyzdys:
$ 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 -CPavyzdys:
$ 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 pavadinimasLeiskite 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 vardasPavyzdys:
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_.txtPateikė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 vardasPavyzdys:
Š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 vardasPavyzdys:
$ 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 vardasPavyzdys:
$ 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.