Adibidez, Linux grep komandoaren erabilerak

Sarrera

Linux grep komandoa sarrera iragazteko metodo gisa erabiltzen da.

GREPk adierazpen erregularreko inprimagailu globala du eta, beraz, modu eraginkorrean erabiltzeko, adierazpen erregularrei buruzko ezagutza izan beharko zenuke.

Artikulu honetan, grep komandoa ulertzen lagunduko dizuten adibide batzuk erakutsiko dizkizut.

01 de 09

Nola bilatu A String fitxategi batean GREP erabiliz

Linux grep Command.

Imajinatu hauei liburuen izenburuak dituzten liburu izeneko testu-fitxategi bat duzula.

"Jarri" izeneko liburu guztiak honako sintaxia erabiliko duen izenburuan aurkituko dituzu:

grep Liburuak

Ondorengo emaitzak itzuliko dira:

Kasu bakoitzean, "The" hitza nabarmenduko da.

Kontuan izan bilaketak maiuskulak eta minuskulak bereizten direla, beraz "titulu" bat "" izan beharrean "The" izan beharrean ez da itzuliko.

Kasua baztertzeko hurrengo modua gehi dezakezu:

grep the books --ignore-case

Eredua -i modua ere erabil dezakezu:

grep -i liburuak

02 de 09

Bilatu karaktere bat erabiliz fitxategiko karaktere bat

Grep komandoa oso indartsua da. Eredua ereduarekin bat datozen teknikak erabil ditzakezu emaitzak iragazteko.

Adibide honetan, karaktere batzuk erabiliz fitxategian kate bat bilatzeko nola agertuko zaizkizu erakutsiko dizu.

Imajina ezazu tokiko eskoziarren izenak dituzten tokiak izeneko fitxategi bat duzula:

aberdeen

Aberystwyth

aberlour

inverurie

inverness

newburgh

orein berria

berria galloway

glasgow

edinburgh

Izenarekin inver leku guztiak aurkitu nahi badituzu, erabili honako sintaxia:

grep inver * lekuak

Asteriskoa (*) komodina 0 edo gehiagorentzat da. Hori dela eta, inverness izeneko leku bat edo inverness izeneko toki bat badago, bi itzuliko lirateke.

Erabili daitekeen beste komodoa aldi (.) Da. Hau erabil dezakezu letra bakar batekin bat etortzeko.

grep inver.r tokiak

Goiko aginduak inverurie eta inverary izeneko tokiak aurkituko lituzke, baina ez luke inolako lanabesik aurkituko, aldi bakar batek adierazten duenaren arabera bi komodinen arteko komodina bakarra izan daitekeelako.

Denboraren komodina erabilgarria da baina arazoak sortzen badituzu bilatzen ari zaren testuaren zati bat baduzu.

Esate baterako, domeinu izenen zerrenda begiratu

To.com-i buruz aurkitu ondoko sintaxia erabiliz bila dezakezu:

grep * about * domainnames

Goiko agindua erori egingo litzateke zerrendan honako izen hori badago:

Ondorengo sintaxia probatu dezakezu:

grep * about.com domeinu izenak

Honek ondo funtzionatuko luke domeinu bat zegoen honako izenarekin:

aboutycom.com

To.com terminoari buruz benetan bilatu nahi duzun puntua ihes egin beharko zenuke honela:

grep * buruz \ .com domeinu izenak

Erakusteko azken komodina Zero edo beste karaktere bat den galdera-marka da.

Adibidez:

grep? ber placenames

Goiko aginduak aberdeen, aberystwyth edo even berwick itzultzen dira.

03 de 09

Bilatu kateak hasieran eta amaieran lerroan grep erabiliz

Karatea (^) eta dolarra ($) ikurrak lerroen hasieran eta amaieran ereduak bilatzeko aukera ematen dute.

Imajinatu futbola izeneko futbol fitxategia honako taldearen izenekin:

Manchester-ekin hasi diren talde guztiak aurkitu nahi badituzu, honako sintaxia erabiliko duzu:

grep ^ Manchester taldeak

Goiko komandoa Manchester City eta Manchester United itzuliko litzateke, baina Manchester United FC ez.

Bestela, Batuarekin amaitzen diren talde guztiak aurkitu ditzakezu honako sintaxia erabiliz:

grep United $ teams

Goiko komandoa Manchester United eta Newcastle United itzuliko litzateke, baina Manchester United FC ez.

04 de 09

Zenbakien kopurua zenbatzea grep erabiliz

Ez baduzu grep-ekin bat datorren benetako lerroa itzultzeko, baina zenbat sintaxia erabil dezakezun jakin nahi duzu:

grep -c eredu fitxategia

Eredua bikoiztu bada bi aldiz, 2. zenbakia itzuliko litzateke.

05 de 09

Grep erabiliz ez datozen Baldintza guztiak aurkitzea

Imajina ezazu toponimoen zerrenda bat honela banatuta dauden herrialdeekin:

Konturatuko zara Colwyn badiak ez duela loturarik herrialde horri.

Herrialde bateko toki guztiak bilatzeko hurrengo sintaxia erabil dezakezu:

grep lurra $ lekuak

Emaitzak itzuli egingo lirateke leku guztiak, Colwyn badiaren kasuan izan ezik.

Lurzoruan bukatzen diren lekuak (zertxobait zientifikoak) lan egiten du.

Hautatutakoa alderantzikatu dezakezu honako sintaxia erabiliz:

grep-v lur $ lekuak

Lurralderik ez zuten leku guztiak topatuko lirateke.

06ko 09

Nola aurkitu lerro hutsak fitxategietan grep erabiltzea

Imajinatu fitxategi bat erabiltzen duzun hirugarrenen aplikazioa, fitxategia irakurtzeari uzten diozunean honela lerro huts bat aurkitzen duenean:

Aplikazioa lineara iritsiko denean liverpool-ek irakurtzeari utziko dio, kolwyn badiaren esanahia galdu egingo da erabat.

Grep erabili dezakezu lerro hutsak bilatzeko ondoko sintaxiarekin:

grep ^ $ lekuak

Zoritxarrez, hau ez da bereziki erabilgarria, lerro hutsak bakarrik itzultzen baititu.

Litekeena zen lerro hutsen kopurua zenbatzea egiaztapen gisa, fitxategi honela baliozkoa den ikusteko:

grep -c ^ $ lekuak

Hala ere, erabilgarria izango litzateke lerro huts bat duten lerro-zenbakiak ezagutzea, horiek ordezteko. Honako komando hau egin dezakezu:

grep -n ^ $ lekuak

07 de 09

Nola bilatu maiuskulak edo minuskulak kateak kateak grep erabiliz

Grep erabiltzea fitxategi batean lerroak zein maiuskulaz karaktereak ondorengo sintaxia erabiliz zehaztu ditzakezun:

grep '[AZ]' filename

Kortxeteak [] karaktere-barrutia zehazteko aukera ematen dizu. Goiko adibidean, A eta Z artean dagoen edozein karakterekin bat egiten du.

Horregatik minuskula-karaktereekin bat datorren sintaxia erabil dezakezu:

grep '[az]' filename

Letrak eta zenbakiak edo sinboloak soilik lotu nahi badituzu, hurrengo sintaxia erabil dezakezu:

grep '[a-zA-Z]' filename

Honako zenbakiekin egin dezakezu:

grep '[0-9]' filename

08 de 09

Ereduak errepikatuz Looking for grep erabiliz

Parentesi kizkunak {} erabili ditzakezu eredu errepikaria bilatzeko.

Imajinatu telefonoz fitxategi bat duzula honela:

Zenbakiaren lehenengo zatia hiru digitu izan behar du eta eredu honekin bat datozen lerroak aurkitu nahi dituzu.

Aurreko adibidean, [0-9] fitxategi batean zenbaki guztiak itzultzen dituzula badakizu.

Une honetan hiru zenbaki batekin hasten diren lerroak nahi ditugu marratxoa (-) jarraituz. Egin dezakezu sintaxi honekin:

grep "^ [0-9] [0-9] [0-9] -" zenbakiak

Aurreko adibideek dakigun bezala, karatea (^) esan nahi du lineak hurrengo eredua hasiko duela.

[0-9] 0 eta 9. zenbaki arteko edozein bilatuko du. Hiru aldiz sartzen den bezala, 3 zenbakiarekin bat egiten du. Azkenean marratxoa dago hiru marratik hiru zenbaki arrakasta izan dezaten.

Kurbaduraren parentesiak erabiliz bilaketa honela txikitzen da honela:

grep "^ [0-9] \ {3 \} -" zenbakiak

Barrurantz {parentesia {exijentzia arruntaren zati gisa} ihes egiten du, baina, esate baterako, hau da [0-9] {3} esaten duena, hau da, 0 eta 9 artean hiru aldiz.

Kurriloen parentesiak honela ere erabil daitezke:

{5,10}

{5}

{5,10} esan nahi du bilatzen ari den karakterea gutxienez 5 aldiz errepikatu behar dela, baina 10 baino handiagoa ez den bitartean, {5,} esan nahi du karakterea errepikatu behar dela gutxienez 5 aldiz baina hori baino gehiago izan daiteke.

09 de 09

Beste agindu batzuen irteera erabiltzea Grep erabiliz

Horrela, banako fitxategietan ereduarekin bat datorren begiratu dugu, baina grep-ek beste komandoetatik irteera erabili dezake ereduarekin bat datorren sarrera gisa.

Horren adibide bikaina da prozesu aktiboak zerrendatzen dituen ps komandoa erabiliz.

Adibidez, exekutatu komando hau:

ps -ef

Zure sistemako exekutatze prozesu guztiak bistaratuko dira.

Grep erabil dezakezu honako prozesu jakin bat bilatzeko:

ps -ef | grep firefox

Laburpen

Grep komandoa oinarrizko Linux komandoa da eta oso ondo merezi du, zure bizitza askoz ere errazagoa izango da terminalak erabiltzean fitxategiak eta prozesuak bilatzeko.