grep

Linux egrep komanda ar piemēriem

Linux egrep komanda ar piemēriem
Komanda egrep pieder komandas grep saimei, kas tiek izmantota rakstu meklēšanai Linux. Ja esat izmantojis komandu grep, egrep darbojas tāpat kā grep -E (grep Extended regex '). Egreps skenē noteiktu failu, līniju uz līniju un izdrukā līniju (-es), kurā ir meklēšanas virkne / regulārā izteiksme. Šajā rakstā mēs izskaidrosim 15 noderīgus egrep komandu piemērus, kas palīdzēs iesācējiem un pat ekspertiem veikt jēgpilnus meklējumus Linux.

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 nosaukums

Piemē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_pattern

Piemē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 nosaukums

Piemē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 nosaukums

Piemē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_pattern

Piemē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 nosaukums

Piemē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 -A "search_string" faila nosaukums

Piemē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 -B "search_string" faila nosaukums

Piemē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 -C "search_string" faila nosaukums

Piemē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 nosaukums

Piemē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_.txt

Mē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 nosaukums

Piemē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 nosaukums

Piemē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 nosaukums

Piemē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.

Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...
Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...