ukubamba sesinye sezixhobo ezisetyenziswa kakhulu kwilayini yomyalelo we-GNU / Linux. Ngaphandle kokuba sisixhobo esilula kakhulu, ikuvumela ukuba wenze inani elikhulu lokusebenza. Isetyenziswa ngakumbi kunye nemibhobho, ukuze ikwazi ukufumana amanqaku athile kwimveliso yomyalelo wangaphambili, njl. Kodwa kukwakho nesixhobo esaziwa njenge-egrep esilingana nokuqhuba i-grep kunye -E ukhetho.
U-e uvela kwi "Regex eyandisiweyo", yiyo le nto evula -E ukhetho kunye nezinto onazo kwi-egrep ngokungagqibekanga ngaphandle kokusebenzisa olo khetho. Oko kukuthi, ungasebenzisa i- intetho eyandisiweyo. Kule tutorial andizukuya ekuchazeni ukuba zeziphi iinkcazo eziqhelekileyo, ukuba zinokusetyenziswa njani kwaye zeziphi iintlobo ezikwi-nix. Ndiza kubonisa nje imizekelo ebonakalayo yezinye izinto eziluncedo onokuzenza nge-egrep ...
grep, egrep, kunye fgrep ziyafana. Ngapha koko, i-egrep ilingana ne-grep -E kunye ne-fgrep ilingana ne-grep -F. Oko kukuthi, kwimeko esichaphazelayo, iyakutolika iipateni njengamabinzana aqhelekileyo.
Unako khangela umgca okanye igama kwifayile enye okanye nangaphezulu, njengoko kunjalo ngegrep. Umzekelo, masithi ufuna ukukhangela igama ubuntu kwifayile ebizwa ngokuba yi-snap.txt kunye nazo zonke iifayile ze-.txt kulawulo lwangoku:
egrep ubuntu snap.txt
egrep ubuntu *.txt
Ukukhangela kunokuba njalo ephindayo Ukukhangela konke okuqulathiweyo kulawulo lwangoku:
egrep -r "hola mundo" *
Ukuza kuthi ga ngoku, amagama afanelekileyo okanye imitya ikhangelwe, oko kukuthi, kuthathelwa ingqalelo imeko ephezulu kunye nezantsi (ethe-ethe), kodwa ukuba ufuna ukuyenza kwimeko yokungakhathali, akunamsebenzi nokuba ngaba bangoonobumba abakhulu okanye abancinci, ungasebenzisa oku kulandelayo (ukuba uyongeza w ifumana kuphela umdlalo opheleleyo):
egrep -i "ejemplo" documento.txt
egrep -iw "ejemplo" documento.txt
Ungabonisi into eyenzekileyo, kodwa amagama efayile apho loo midlalo yafunyanwa khona:
egrep -l hola *.txt
Bonisa kuphela ipateni okanye igama kukhangelwe ngaphakathi kuxwebhu:
egrep -o printf hola.c
Khumbula ukuba ungasebenzisa onke amathuba onokucinga ngawo. Ungadibanisa uninzi lwezikhetho ezibonwe ngaphambili, okanye ungazincedisa ngezinye iindlela ezinje nge -A n kunye -B n, apho n inani lemigca ofuna ukuyibonisa ngaphambili (Phambi) nasemva (Emva) yomdlalo okanye zombini ngaxeshanye (C), ukuze ubone ukuba yintoni ejikeleze umdlalo:
egrep -A 2 "printf" hola.c
egrep -B 2 "printf" hola.c
egrep -C 2 printf hola.c
Cinezela imigca equlathe umdlalo kwaye ubonise kuphela ezo ezingahambelaniyo:
egrep -v "dos" números.doc
Okanye ukuba ukhetha, ungasebenzisa amagama amaninzi okanye umdlalo kunye -e. Umzekelo:
egrep -v -e "uno" -e "dos" -e "tres" números.txt
Ukuba uyasebenzisa -c Inokubala kuphela inani lematshisi, okanye uyiguqule nge -v ukubonisa inani lemigca engalinganiyo. Umzekelo:
egrep -c "include" main.c
egrep -v -c "include" main.c
Kwaye nkqu bonisa inombolo yomgca apho umdlalo wenzeka khona, kunye nendawo ekubekwa kuyo ngokulandelelana:
egrep -n "void" hola.c
egrep -o -b "printf" hola.c
Kwaye kunye amabinzana aqhelekileyo amandla ayo anokwandiswa. Umzekelo, fumana umgca oqala ngo-Molo kwaye uphele ngo-bye, okanye oqala ngo-Molo olandelwe yiyo nantoni na emva koko umdlalo ubonakale ngokulandelelana:
* Ukulungiswa kwalo myalelo ulandelayo: enkosi kwingcaciso yomfundi uManuel Alcocer ndikwazile ukuguqula lo myalelo ulandelayo, kuba bekukho impazamo.
egrep '^Hola.*adiós$' ejemplo.txt
egrep "Hola.*adiós" ejemplo.txt
Kodwa ukuba uyazibuza ngumahluko nge-grep, nanku umzekelo oza kuyenza icace ... Kwimeko yokusebenzisa grep ngaphandle -E kuya kufuneka usebenzise ukulandelelana ngokulandelelana ukuze itolike oonobumba abakhethekileyo ngolu hlobo, kungenjalo iya kutolika ipatheni injalo ingakhange ithathele ingqalelo. Kwelinye icala, nge-egrep okanye i-grep -E iya kubathathela ingqalelo. Umzekelo:
grep '^no\(fork\|group\)' /etc/group
Oko kuya kulingana:
grep -E '^no(fork|group)' /etc/group
egrep '^no(fork|group)' /etc/group
Oko kukuthi, kuya kujonga imigca ehambelana nayo eqala nge-nofork okanye kwiqela leqela. Kodwa ukuba usebenzise intetho yokuqala ye-grep ngaphandle kwendlela yokubaleka, into enokuyenza kukukhangela iphethini yekhonkrithi hayi (ifolokhwe | iqela):
grep 'no(fork|group)' /etc/group
Unokukhangela kwakhona Uluhlu lwealphanumeric, okanye amaxabiso athile, njengokufumana ii-IPs ezithile:
cat /etc/networks | egrep "192.168.1.[5-9]"
cat /etc/networks | egrep "192.168.[1-3].[5-9]"
cat /etc/networks | egrep "192.168.1.[0-3]|[5-9]"
egrep 192.168.4.[10,40] networks
Ukuba ukhetha, ungasebenzisa amanye amabinzana aqhelekileyo ukwenza uphando oluthile. Umzekelo | ukufumana enye ngengozi okanye enye:
egrep -i '^(printf|scanf)' hola.c
Unokufumana indawo oonobumba abakhulu, amagama asezantsi, oonobumba, okanye oonobumba, njl., usebenzisa amanye amabinzana anje nge: [: alnum:], [: alpha:], [: idijithi:], [: ezantsi:], [: shicilela:], [: isibhambathiso:], [: isithuba:], [: ephezulu:], njl. Umzekelo, ukukhangela oonobumba abakhulu:
egrep [[:upper:]] diccioario
Ndiyathemba ukuba iyakunceda ... Kungekudala ndiza kuchaza amabinzana aqhelekileyo kwinqaku elinikezelwe ngokukodwa ...
Mva
Amagqabantshintshi ambalwa ...
Uchaza umyalelo 'we-egrep' kodwa musa ukubeka umahluko phakathi kwe 'egrep' kunye 'grep', ekufuneka ibe yile ilapha.
Umzekelo:
Nge-grep: ip -4 a | grep '[0-9] \ +'
Ngomzekelo: ip -4 a | Umzekelo '[0-9] +'
Ahh, kwaye ayilunganga, 'egrep "Molo. * Bye" example.txt'; impumelelo apha yenzeka xa kukho umgca kwifayile equlathe umtya 'Molo' ulandelwe yiyo nayiphi na into ilandelwe ngu 'ndlela ntle', umgca ungaqala kwaye uphele ngayo nantoni na.
Inokuba yile nto ithethwa leli nqaku:
egrep '^ Molo. * bye $' umzekelo.txt
Kwaye lonke ukhetho, okanye phantse zonke (andimisi ukujonga), lukhetho lwe 'grep' hayi i 'egrep' ngokukodwa.
Ukugqithisa kakhulu
Enkosi ngokunika ingxelo yempazamo. Into oyithethayo kumabinzana aqhelekileyo, sendiyibekile kumqolo wesibini. Ndiza kunikezela inqaku elithile kubo, kuba baninzi kwaye eli nqaku liza kuthatha ixesha elide. Umbuliso!
Molo kwakhona, Isaac.
Kumhlathi wesibini utsho, okanye bekufanele ukuba uthe, 'egrep' ligama le 'grep -E', kodwa awuniki mzekelo wokusebenzisa 'egrep' ngentetho eqhelekileyo ebhalwe ngokwahlukileyo kunaleyo yayisetyenziswa ' grep '.
Ukunikezela inqaku ukuchaza amabinzana aqhelekileyo kubonakala kunzima kum, phakathi kwezinye izinto kuba kukho iisayithi ezinje ezingabhengeziyo kwaye zenza umsebenzi wolwazi obaluleke kakhulu kuluntu lwe-GNU: https://www.rexegg.com/
Andibhaleli apha ukunyathela, injongo yam ngayo yonke le nto kukuba ukuba umntu othile ufunda oku kungena ukuze abone ukuba yintoni 'egrep' okanye 'grep', nceda ujonge kweminye imithombo, olu ngeno alunakubhekisa kuyo nantoni na, ichaza kancinci, imbi , inikezela ngolwazi olungeyomfuneko kwaye inokudideka, ngakumbi kwabo bangenalwazi nge-GNU kunye nezixhobo ezinamandla ezinikezelayo.
Okokugqibela, ungeze kwaye walungisa ibug endiyibonisileyo emva kwengcaciso yam yokuqala (^ $). Njengakwezinye iisayithi, bekufanele ukuba ukhankanye umntu owenze izilungiso, okanye ubuncinci uthi ulungiso olo, oluyinxalenye yesiseko se-GNU, isiseko esinye nale blog saqalwa ngaso ilahlekile.
A ubingelele.
Enkosi ngombono wakho.
ffff