Vodič za regularni izraz za Linux: Primjer Grep Regexa

Sadržaj:

Anonim

Što su Linux regularni izrazi?

Regularni izrazi za Linux posebni su znakovi koji pomažu u pretraživanju podataka i usklađivanju složenih obrazaca. Regularni izrazi skraćeni su kao 'regexp' ili 'regex'. Koriste se u mnogim Linux programima poput grep, bash, preimenovanje, sed itd.

Vrste regularnih izraza

Radi lakšeg razumijevanja naučimo različite vrste Regexa jedan po jedan.

  • Osnovni regularni izrazi
  • Interval Regularni izrazi
  • Prošireni regularni izrazi
  • Sažetak

Kliknite ovdje ako videozapis nije dostupan

Osnovni regularni izrazi

Neke od najčešće korištenih naredbi s regularnim izrazima su tr, sed, vi i grep. U nastavku su navedeni neki od osnovnih regularnih izraza.

Simbol Opisi
. zamjenjuje bilo koji lik
odgovara početku niza
$ odgovara kraju niza
* podudara se nula ili više puta s prethodnim znakom
\ Predstavljaju posebne znakove
() Grupira regularne izraze
? Odgovara točno jednom liku

Pogledajmo primjer.

Izvršite uzorak mačke da biste vidjeli sadržaj postojeće datoteke

Potražite sadržaj koji sadrži slovo 'a'.

' ^ ' odgovara početku niza. Potražimo sadržaj koji POČINJE s

Filtriraju se samo retci koji započinju znakom. Redci koji na početku ne sadrže znak 'a' zanemaruju se.

Pogledajmo još jedan primjer -

Odaberite samo one retke koji završavaju s t pomoću $

Interval Regularni izrazi

Ti nam izrazi govore o broju pojavljivanja znakova u nizu. Oni su

Izraz Opis
{n}

Točno odgovara prethodnom znaku koji se pojavljuje 'n' puta

{n, m} Podudara se s prethodnim znakom koji se pojavljuje 'n' puta, ali ne više od m
{n,} Podudara se s prethodnim znakom samo kada se pojavi 'n' puta ili više

Primjer:

Filtrirajte sve retke koji sadrže znak 'p'

Želimo provjeriti pojavljuje li se znak 'p' točno dva puta u nizu jedan za drugim. Za to bi sintaksa bila:

cat sample | grep -E p\{2}

Napomena: Morate dodati -E s ovim regularnim izrazima.

Prošireni regularni izrazi

Ti regularni izrazi sadrže kombinacije više od jednog izraza. Neki od njih su:

Izraz Opis

\ +

Podudara se s jednom ili više pojava prethodnog znaka

\?

Podudara se s nulom ili jednom pojavom prethodnog znaka

Primjer:

Traženje svih znakova 't'

Pretpostavimo da želimo filtrirati retke u kojima znak 'a' prethodi znaku 't'

Možemo koristiti naredbu poput

cat sample|grep "a\+t"

Proširenje aparatića

Sintaksa za proširivanje zagrada je ili niz stavki ili popis odvojenih zarezima unutar kovrčavih zagrada "{}". Početne i završne stavke u nizu odvojene su s dva razdoblja "...".

Neki primjeri:

U gornjim primjerima naredba echo stvara nizove pomoću proširenja zagrade.

Sažetak:

  • Regularni izrazi skup su znakova koji se koriste za provjeru uzoraka u nizovima
  • Također se nazivaju 'regularni izraz' i 'regularni izraz'
  • Važno je naučiti regularne izraze za pisanje skripti
  • Neki osnovni regularni izrazi su:
Simbol Opisi
. zamjenjuje bilo koji lik
odgovara početku niza
$ odgovara kraju niza
  • Neki prošireni regularni izrazi su:
Izraz Opis
\ + Podudara se s jednom ili više pojava prethodnog znaka
\? Podudara se s nulom ili jednom pojavom prethodnog znaka
  • Neki su intervalni regularni izrazi:
Izraz Opis
{n} Točno odgovara prethodnom znaku koji se pojavljuje 'n' puta
{n, m} Podudara se s prethodnim znakom koji se pojavljuje 'n' puta, ali ne više od m
{n,} Podudara se s prethodnim znakom samo kada se pojavi 'n' puta ili više
  • Proširenje zagrade koristi se za generiranje žica. Pomaže u stvaranju više nizova iz jednog.