1. piemērs: Konkrētas virknes meklēšana failā
Šī ir visizplatītākā egrep komandas izmantošana. Tas, ko jūs darāt, ir tas, ka jūs norādāt virkni, kuru vēlaties meklēt, un faila nosaukumu, kurā vēlaties meklēt šo virkni. Rezultātā tiek parādīta visa rinda, kurā atrodas meklētā virkne.
Sintakse:
$ egrep “search_string” faila nosaukumsPiemērs:
$ egrep debian samplefile.txtŠajā piemērā es meklēju vārdu “debian” norādītajā teksta failā. Jūs varat redzēt, kā rezultātos tiek parādīta visa rinda, kurā ir vārds “debian”:
2. piemērs: Konkrētas virknes meklēšana vairākos failos
Izmantojot egrep komandu, jūs varat meklēt virkni starp vairākiem failiem, kas atrodas vienā direktorijā. Jums vienkārši jābūt nedaudz precīzākam, sniedzot meklēto failu “modeli”. Tas kļūs skaidrāks ar mūsu sniegto piemēru.
Sintakse:
$ egrep "search_string" faila nosaukums_patternPiemērs:
Šeit mēs meklēsim vārdu “debian” visās .txt failus, faila nosaukuma modeli norādot šādi:
$ egrep “debian” *.txt
Komanda ir izdrukājusi visas rindas kopā ar failu nosaukumiem, kas satur vārdu “debian” no visām .txt faili pašreizējā direktorijā.
3. piemērs: Rekursīvi meklējot virkni visā direktorijā
Ja vēlaties meklēt virkni visos failos no direktorija un tā apakšdirektorijiem, to varat izdarīt, izmantojot -r karogu ar komandu egrep.
Sintakse:
$ egrep -r "search_string" *Piemērs:
Šajā piemērā es meklēju vārdu “paraugs” visa pašreizējā (Lejupielādes) direktorija failos.
$ egrep -r "paraugs" *
Rezultāti satur visas rindas kopā ar failu nosaukumiem, kurās ir vārds “paraugs” no visiem mapē Lejupielādes esošajiem failiem un tā apakšdirektorijiem.
4. piemērs: veic reģistru nejutīgu meklēšanu
Izmantojot -i karodziņu, jūs varat izmantot komandu egrep, lai drukātu rezultātus, pamatojoties uz meklēšanas virkni, neuztraucoties par tā reģistru.
Sintakse:
$ egrep -i "search_string" faila nosaukumsPiemērs:
Šeit es meklēju vārdu “debian” un vēlos, lai rezultātos tiktu parādītas visas faila rindas, kurās ir vārds “debian” vai “Debian”, neatkarīgi no tā gadījuma.
$ egrep -i "search_string" faila nosaukums
Jūs varat redzēt, kā -i karodziņš man palīdzēja iegūt visas līnijas, kurās ir meklēšanas virkne, izmantojot reģistru “nejutīgs” meklējums.
5. piemērs: virknes meklēšana kā pilns vārds, nevis kā apakšs virkne
Parasti meklējot virkni caur egrep, visi vārdi, kas satur virkni, tiek izdrukāti kā apakškopa. Piemēram, meklējot virkni “on”, tiks izdrukāti visi vārdi, kas satur virkni “on”, piemēram, “on”, “only”, “monitor”, “clone” utt. Ja vēlaties, lai rezultātos tikai vārds “ieslēgts” tiktu parādīts kā pilns vārds, nevis kā apakšs virkne, varat izmantot karodziņu -w ar egrep.
Sintakse:
$ egrep -w “search_string” faila nosaukumsPiemērs:
Šeit es meklēju virkni “on” faila paraugā:
$ egrep -i “on” paraugfails.txt
Iepriekš redzamajā izvadē var redzēt, ka tajā ir arī vārds “tikai”. Tomēr tas nav tas, ko es vēlos, jo es tikai meklēju vārdu “ieslēgts”. Tātad, tā ir komanda, kuru es izmantošu tā vietā:
$ egrep -iw “on” paraugfails.txt
Tagad manos meklēšanas rezultātos ir iekļautas tikai tās rindas, kurās vārds “ieslēgts” satur visu vārdu.
6. piemērs: Drukājiet tikai tos failu nosaukumus, kas satur virkni
Dažreiz mēs vēlamies ienest tikai to failu nosaukumus, kas satur noteiktu virkni, nevis drukāt līnijas, kurās to satur. To var izdarīt, izmantojot karogu -l (mazie L) ar komandu egrep.
Sintakse:
$ egrep -l "search_string" faila nosaukums_patternPiemērs:
Šeit es meklēju virkni “paraugs” visos .txt faili pašreizējā direktorijā:
$ egrep -l paraugs *.txt
Meklēšanas rezultāti izdrukā tikai to failu nosaukumus, kas satur norādīto virkni.
7. piemērs: no faila drukājiet tikai meklēšanas virkni
Tā vietā, lai drukātu visu līniju, kurā atrodas meklēšanas virkne, varat izmantot komandu egrep, lai izdrukātu pašu virkni. Virkne tiks izdrukāta tik reižu, cik tā parādās norādītajā failā.
Sintakse:
$ egrep -o "search_string" faila nosaukumsPiemērs:
Šajā piemērā es meklēju vārdu “Šis” savā failā.
$ egrep -o Šis paraugfails_.txt
Piezīme. Šis komandas lietojums ir noderīgs, ja meklējat virkni, kuras pamatā ir regulāras izteiksmes modelis. Regulāri izteicieni detalizēti paskaidrosim vienā no nākamajiem piemēriem.
8. piemērs: n rindu skaita parādīšana pirms, pēc vai ap meklēšanas virkni
Dažreiz ir ļoti svarīgi zināt kontekstu failā, kurā tiek izmantota noteikta virkne. Egrep ir noderīgs tādā nozīmē, ka to var izmantot, lai parādītu līniju, kurā ir meklēšanas virkne, kā arī noteiktu rindu skaitu pirms, pēc un ap to.
Šis ir teksta faila paraugs, kuru es izmantošu, lai izskaidrotu nākamos piemērus:
N rindu skaits pēc meklēšanas virknes:
Izmantojot karodziņu A šādā veidā, tiks parādīta līnija, kurā ir meklēšanas virkne un N rindu skaits pēc tās:
$ egrep -APiemērs:
$ egrep -A 2 "parauga" paraugfails.txt
N rindu skaits pirms meklēšanas virknes:
Izmantojot karodziņu B šādā veidā, tiks parādīta līnija, kurā ir meklēšanas virkne un N rindu skaits pirms tās:
$ egrep -BPiemērs:
$ egrep -B 2 "parauga" paraugfails.txt
N rindu skaits pirms meklēšanas virknes:
Izmantojot karodziņu C šādā veidā, tiks parādīta līnija, kurā ir meklēšanas virkne, un N rindu skaits pirms un pēc tās:
$ egrep -CPiemērs:
$ egrep -C 2 "parauga" paraugfails.txt
9. piemērs: Regulārās izteiksmes saskaņošana failos
Komanda egrep kļūst spēcīgāka, kad failā meklējat regulāras izteiksmes, nevis cietas meklēšanas virknes.
Sintakse:
$ egrep "RegularExpressions" faila nosaukumsĻaujiet mums paskaidrot, kā jūs varat izmantot regulārās izteiksmes savā egrep meklēšanā:
Atkārtošanās operators | Izmantot |
? | Iepriekšējais vienums pirms ? nav obligāta un tiek saskaņota ne vairāk kā vienu reizi
|
* | Iepriekšējais vienums pirms * tiks saskaņots ar nulli vai vairāk reizes |
+ | Iepriekšējais vienums pirms + tiks saskaņots vienu vai vairākas reizes |
n | Iepriekšējais vienums precīzi atbilst n reižu skaitu. |
n, | Iepriekšējais vienums ir saskaņots n vai vairāk reizes |
, m | Iepriekšējais vienums ir saskaņots maksimāli m reizes |
n, m | Iepriekšējais vienums tiek saskaņots vismaz n reizes, bet ne vairāk kā m reizes |
Piemērs:
Šajā piemērā tiek saskaņotas rindas, kurās ir šāda izteiksme:
sākot ar “Gnome” un beidzot ar “programmas”
10. piemērs: meklēšanas virknes izcelšana
Iestatot GREP_OPTIONS vides mainīgo, kā norādīts zemāk, iegūsiet rezultātu, rezultātos izceļot meklēšanas virkni / modeli:
$ sudo eksportēt GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'Pēc tam jūs varat meklēt virkni jebkurā veidā, ko esam aprakstījuši šī raksta piemēros.
11. piemērs: Pārvērst meklēšanu failā
Ar invertēto meklēšanu mēs domājam, ka komanda egrep drukā visu failā, izņemot rindas, kurās ir meklēšanas virkne. Mēs izmantosim šādu faila paraugu, lai izskaidrotu invertēto meklēšanu, izmantojot egrep. Mēs esam izdrukājuši faila saturu, izmantojot komandu cat:
Sintakse:
$ egrep -v "search_string" faila nosaukumsPiemērs:
No pieminētā faila parauga mēs vēlamies izlaist rindu, kurā ir vārds “divi”, tāpēc mēs izmantosim šādu komandu:
$ egrep -v "two" samplefile_.txt
Jūs varat redzēt, kā izvadā ir viss no parauga faila, izņemot otro rindu, kurā bija meklēšanas virkne “divi”.
12. piemērs: Apgrieztās meklēšanas veikšana, pamatojoties uz vairākiem kritērijiem / meklēšanas modeli
Izmantojot -v karogu, jūs varat arī izveidot komandu egrep, lai veiktu apgrieztu meklēšanu, pamatojoties uz vairāk nekā vienu meklēšanas virkni / modeli.
Lai izskaidrotu šo scenāriju, mēs izmantosim to pašu faila paraugu, kuru pieminējām 11. piemērā.
Sintakse:
$ egrep -v -e "search_string" / "pattern" -e "search_string" / ”pattern”… faila nosaukums
Piemērs:
No pieminētā faila parauga mēs vēlamies izlaist rindu (-as), kurā ir vārdi “viens” un “divi”, tāpēc mēs izmantosim šādu komandu:
$ egrep -v -e "viens" -e "divi" paraugfails_.txtMēs esam norādījuši divus vārdus, kurus izlaist, izmantojot -e karodziņu, tādēļ izeja parādīsies šādi:
13. piemērs: meklēšanas virknei atbilstošo rindu skaita izdrukāšana
Tā vietā, lai drukātu meklēto virkni no faila vai tajā esošajām rindām, varat izmantot komandu egrep, lai saskaitītu un izdrukātu virknei atbilstošo rindu skaitu. Šo skaitu var iegūt, izmantojot -c karogu ar egrep komandu.
Sintakse:
$ egrep -c "search_string" faila nosaukumsPiemērs:
Šajā piemērā mēs izmantosim karodziņu -c, lai mūsu parauga failā saskaitītu to rindu skaitu, kurās ir vārds “Šis”:
$ egrep -c "Šis" faila nosaukums
Šeit varat izmantot arī apgrieztās meklēšanas funkciju, lai saskaitītu un izdrukātu to rindu skaitu, kurās nav meklēšanas virknes:
$ grep -v -c "search_string" faila nosaukums
14. piemērs: Rindas numura parādīšana, kur virkne ir saskaņota
Izmantojot karodziņu -n, jūs varat izveidot komandu egrep, lai izdrukātu saskaņoto līniju kopā ar līnijas numuru, kas satur meklēšanas virkni.
Sintakse:
$ grep -n "search_string" faila nosaukumsPiemērs:
$ grep -n "Šis" paraugfails_.txt
Jūs varat redzēt, kā līniju numuri tiek parādīti meklēšanas rezultātos.
15. piemērs: pozīcijas parādīšana failā, kur atbilst meklēšanas virkne
Ja vēlaties uzzināt atrašanās vietu failā, kurā pastāv meklēšanas virkne, varat izmantot -b karogu ar komandu egrep.
$ grep -o -b "search_string" faila nosaukumsPiemērs:
$ grep -o -b "Šis" paraugfails_.txt
Meklēšanas rezultāti izdrukā faila baita nobīdi, kur atrodas meklēšanas vārds.Tas bija detalizēts egrep komandas lietojums. Izmantojot šajā rakstā izskaidroto karodziņu kombināciju, failos varat veikt jēgpilnākas un sarežģītākas meklēšanas.