Selles artiklis näitame teile, kuidas käivitada stringide otsimine regulaaravaldisega Grepi abil, andes teile 10 praktilist näidet selle rakenduste kohta. Paljudel selles artiklis käsitletud näidetel on praktiline tähendus, mis tähendab, et saate neid kasutada oma igapäevases Linuxi programmeerimises. Järgmistes näidetes kirjeldatakse regulaarseid näiteid tavaliselt otsitavate mustrite kohta.
Näide 1: leidke tekstifailist üksik prahtija
Faili „book” ridade väljastamiseks, mis sisaldavad tähte „$”, tippige:
$ grep '\ $' raamatNäide 2: leidke tekstifailist üks string
Faili 'book' ridade väljastamiseks, mis sisaldab stringi '$ 14.99 ', tüüp:
$ grep '\ $ 14 \.99-aastane raamatNäide 3: leidke tekstifailist üksik spetsiaalne prahtija
Faili „book” ridade väljastamiseks, mis sisaldavad märki „\”, tippige:
$ grep '\\' raamatNt 4: joonte sobitamine alates teatud tekstist
Kasutage rea alguses tähtkirja „exp”, et tähistada rea algust.
Kõigi ridade väljaandmiseks kataloogis / usr / dict / words, mis algavad tähega „pro”, tippige:
$ grep 'ˆpro' / usr / dict / wordsKõigi ridade väljastamiseks failis „raamat”, mis algavad tekstiga „alguses”, olenemata juhtumist, tippige:
$ grep -i 'alguses raamatusMÄRGE: Neid regexpe tsiteeriti tähemärkidega; Selle põhjuseks on asjaolu, et mõned kestad käsitlevad tähemärki otherwise muidu kui spetsiaalset metamärki
Lisaks sõna- ja fraasiotsingutele saate grepiga otsida keerulisi tekstimustreid, mida nimetatakse regulaaravaldisteks. Regulaaravaldis või “regexp” on erimärkide tekstistring, mis määrab a seatud sobivad mustrid.
Tehniliselt öeldes on sõna- või fraasimustrid regulaaravaldised - lihtsalt väga lihtsad. Regulaaravaldises esindab enamik märke, sealhulgas tähed ja numbrid, iseennast. Näiteks regexp muster 1 sobib stringi '1' ja mustriga poiss sobib stringiga "poiss".
On mitmeid reserveeritud tähemärke, mida nimetatakse metamärkideks ja mis ei esinda ennast regulaaravaldises, kuid neil on eriline tähendus, mida kasutatakse keerukate mustrite loomiseks. Need metamärgid on järgmised: ., *, [, ], ˆ, $ ja \. On hea märkida, et sellised metamärgid on levinud peaaegu kõigi levinud ja spetsiaalsete Linuxi distributsioonide seas. Siin on hea artikkel, mis hõlmab metamärkide eritähendusi ja toob näiteid nende kasutamisest.
Nt 5: joonte sobitamine kindla tekstiga
Tsiteeritud teksti viimase tähemärgina kasutage tähte $, et see vastaks tekstile ainult rea lõpus. Hüüumärgiga lõppevate faili „läheb” ridade väljastamiseks tippige:
$ grep '!$ lähebNt 6: teatud pikkusega joonte sobitamine
Kindla pikkusega joonte sobitamiseks kasutage seda arvu.'characters' ja '$' vahelised tähemärgid - näiteks kõigi kahe tähemärgi (või veeru) laiuse rea sobitamiseks kasutage otsimiseks regressi 'ˆ… $'.
Kõigi täpselt kolme tähemärgi laiuste rida kataloogis "/ usr / dict / words" sisestage:
$ grep 'ˆ ... $' / usr / dict / wordsPikemate ridade puhul on kasulikum kasutada erinevat konstruktsiooni: ':.\ number \ $ ', kus number on sobitatavate ridade arv. Numbrivahemiku määramiseks kasutage klahvi ','.
Kõigi täpselt kaheteistkümne tähemärgi laiuste kaustade / / usr / dict / words ridade väljastamiseks tippige:
$ grep 'ˆ.\ 12 \ $ '/ usr / dict / wordsKõigi ridade väljastamiseks failis "/ usr / dict / words", mis on kahekümne kaks või enam tähemärki lai, tippige:
$ grep 'ˆ.\ 22, \ $ '/ usr / dict / sõnadNt 7: sobivad read, mis sisaldavad mõnda regexps'i
Ridade sobitamiseks, mis sisaldavad suvalist regexps-i, määrake iga regexps, et otsida vaheldusoperaatorite vahel ('\ |') regexina otsimiseks. Välja antakse read, mis sisaldavad mõnda antud regexps-i.
„Playboy” kõigi ridade väljastamiseks, mis sisaldavad mustreid „raamat” või „kook”, tippige:
$ grep 'raamat \ | kook' playboyNt 8: sobitamisjooned, mis sisaldavad kõiki regexse
Vastavate ridade väljastamiseks kõik regexps-i hulgast kasutage väljundi ridade jaoks, mis sisaldavad esimest sobitatavat regexpi, ja sisestage väljund greg-i teise argumendina. Jätkake torude lisamist kõigi otsitavate regexpside otsimiseks.
Kõigi ridade esitamiseks esitusloendis, mis sisaldab nii mustreid „kalda” kui „taevas”, kirjutage sõltumata juhtumist:
$ grep -i 'kalda' esitusloend | grep -i taevasNt 9: sobivad jooned, mis sisaldavad ainult teatud märke
Ridade sobitamiseks, mis sisaldavad ainult teatud märke, kasutage regexp 'ˆ [tähemärki] * $', kus sobivad märgid. Ainult vokaale sisaldavate ridade väljaandmiseks kataloogis / / usr / dict / words sisestage:
$ grep -i 'ˆ [aeiou] * $' / usr / dict / sõnadValik '-i' sobib tähemärkidele olenemata suurtähest; nii et selles näites sobitatakse kõik täishäälikumärgid olenemata suurtähest.
Nt 10: fraaside leidmine, olenemata vahekaugusest
Üks võimalus fraasi otsimiseks, mis võib esineda sõnade vahel või rea või lehe vaheaja juures lisavahega, on sisendist kõigi reavoogude ja lisatühikute eemaldamine ning seejärel selle haaramine. Selleks sisestage sisend tr-ile argumendiga "\ r \ n: \> \ | -" valikule '-d "(eemaldades sisendist kõik reavahetused); tõmmake see fmt-filtrisse valiku '-u' abil (teksti väljastamine ühtlase vahega); ja toru, et haarata otsitava mustriga.
Stringi 'reavahemike otsimiseks failis' docs 'samal ajal' tippige:
$ kassi dokumendid | tr -d '\ r \ n: \> \ |-'| fmt -u | grep 'samal ajal kui'
Kokkuvõte
Selles artiklis vaatasime üle 10 praktilist näidet Grep Linuxi käsu kasutamiseks tekstifailist stringide otsimiseks ja leidmiseks. Teel õppisime, kuidas kasutada korrapäraseid väljendeid koos Grepiga tekstifailide keerukate otsingute läbiviimiseks. Nüüdseks on teil parem idee selle kohta, kui võimsad on Linuxi otsingufunktsioonid.
Siin on lisaressursid neile, kes on huvitatud Linuxi programmeerimise kohta lisateabe saamisest:
Ressursid süsteemiadministraatoritele
- Linuxi süsteemi administraatori juhend - mis on Linuxi operatsioonisüsteem ja kuidas see töötab
- Linuxi süsteemi administraatori juhend - ülevaade Linuxi virtuaalsest mälust ja kettapuhvri vahemälust
- Linuxi süsteemi administraatori juhend - parimad tavad Linuxi süsteemide jälgimiseks
- Linuxi süsteemi administraatori juhend - parimad tavad Linuxi alglaadimiste ja seiskamiste sooritamiseks
- Linuxi süsteemi administraatori juhend - varundustoimingute tegemise ja haldamise parimad tavad
Ressursid Linuxi kerneli programmeerijatele
- Kuidas Linuxi operatsioonisüsteemi mäluhaldus töötab
- Linuxi kerneli operatsioonisüsteemi protsesside põhjalik ülevaade
- Millised on Linuxi kerneli ülesannete haldamise mehhanismid
Linuxi failisüsteemi sõnastik
Põhjalik ülevaade Linuxi faili- ja kataloogisüsteemi toimimisest