Linux regulārās izteiksmes apmācība: Grep regex piemērs

Satura rādītājs:

Anonim

Kas ir Linux regulārās izteiksmes?

Linux regulārās izteiksmes ir īpašas rakstzīmes, kas palīdz meklēt datus un saskaņot sarežģītus modeļus. Regulārās izteiksmes tiek saīsinātas kā “regexp” vai “regex”. Tie tiek izmantoti daudzās Linux programmās, piemēram, grep, bash, pārdēvēt, sed utt.

Regulāro izteicienu veidi

Lai būtu vieglāk saprast, ļaujiet mums pa vienam apgūt dažādus Regex veidus.

  • Regulārās izteiksmes
  • Intervāls Regulāras izteiksmes
  • Paplašinātas regulārās izteiksmes
  • Kopsavilkums

Noklikšķiniet šeit, ja videoklips nav pieejams

Regulārās izteiksmes

Dažas no parastajām izteiksmēm parasti izmantotajām komandām ir tr, sed, vi un grep. Turpmāk uzskaitīti daži no pamata Regex.

Simbols Apraksti
. aizstāj jebkuru rakstzīmi
atbilst virknes sākumam
$ sakrīt ar virknes beigām
* sakrīt ar nulles vai vairāk reižu iepriekšējo rakstzīmi
\ Pārstāviet īpašās rakstzīmes
() Grupē regulāras izteiksmes
? Saskaņo tieši ar vienu rakstzīmi

Apskatīsim piemēru.

Izpildiet kaķa paraugu, lai redzētu esoša faila saturu

Meklējiet saturu, kas satur burtu “a”.

' ^ ' sakrīt ar virknes sākumu. Meklēsim saturu, kas Sākas ar a

Tiek filtrētas tikai tās līnijas, kas sākas ar rakstzīmi. Līnijas, kuru sākumā nav rakstzīmes “a”, tiek ignorētas.

Apskatīsim citu piemēru -

Izmantojot $, atlasiet tikai tās rindas, kas beidzas ar t

Intervāls Regulāras izteiksmes

Šie izteicieni norāda mums par virknes rakstzīmju parādīšanās skaitu. Viņi ir

Izteiksme Apraksts
{n}

Precīzi atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes

{n, m} Atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes, bet ne vairāk kā m
{n,} Saskaņo iepriekšējo rakstzīmi tikai tad, kad tā parādās 'n' vai vairāk reizes

Piemērs:

Filtrējiet visas rindas, kurās ir raksturs “p”

Mēs vēlamies pārbaudīt, vai rakstzīme “p” virknē parādās tieši 2 reizes viena pēc otras. Šajā gadījumā sintakse būtu šāda:

cat sample | grep -E p\{2}

Piezīme. Jums jāpievieno -E ar šīm regulārajām izteiksmēm.

Paplašinātas regulārās izteiksmes

Šīs regulārās izteiksmes satur vairāk nekā vienas izteiksmes kombinācijas. Daži no tiem ir:

Izteiksme Apraksts

\ +

Atbilst vienam vai vairākiem iepriekšējā rakstzīmes gadījumiem

\?

Sakrīt ar nulli vai vienu iepriekšējās rakstzīmes gadījumu

Piemērs:

Visu rakstzīmju meklēšana 't'

Pieņemsim, ka mēs vēlamies filtrēt līnijas, kurās rakstzīme a ir pirms rakstzīmes t

Mēs varam izmantot komandu, piemēram,

cat sample|grep "a\+t"

Lencīšu paplašināšana

Bikšturu paplašināšanas sintakse ir vai nu secība, vai ar komatiem atdalīts vienumu saraksts cirtainajās lencēs "{}". Sākuma un beigu vienumi secībā tiek atdalīti ar diviem punktiem "...".

Daži piemēri:

Iepriekš minētajos piemēros komanda atbalss izveido virknes, izmantojot lencīšu paplašināšanu.

Kopsavilkums:

  • Regulārās izteiksmes ir rakstzīmju kopums, ko izmanto, lai pārbaudītu virkņu modeļus
  • Tos sauc arī par “regexp” un “regex”
  • Ir svarīgi iemācīties regulāras izteiksmes skriptu rakstīšanai
  • Daži regulārie pamata izteicieni ir:
Simbols Apraksti
. aizstāj jebkuru rakstzīmi
atbilst virknes sākumam
$ sakrīt ar virknes beigām
  • Daži paplašinātie regulārie izteicieni ir:
Izteiksme Apraksts
\ + Atbilst vienam vai vairākiem iepriekšējā rakstzīmes gadījumiem
\? Sakrīt ar nulli vai vienu iepriekšējās rakstzīmes gadījumu
  • Daži regulāru izteiksmju intervāli ir:
Izteiksme Apraksts
{n} Precīzi atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes
{n, m} Atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes, bet ne vairāk kā m
{n,} Saskaņo iepriekšējo rakstzīmi tikai tad, kad tā parādās 'n' vai vairāk reizes
  • Bikšturu paplašināšana tiek izmantota virkņu ģenerēšanai. Tas palīdz izveidot vairākas virknes no vienas.