Vodič za regularne izraze u Linuxu: primjer Grep Regex
⚡ Pametni sažetak
Linux regularni izrazi su posebni nizovi znakova koji pretražuju podatke i uspoređuju složene obrasce u alatima kao što su grep, sed i vi, koristeći osnovne, intervalne, proširene i oblike s proširenim zagradama za precizno filtriranje teksta.

Regularni izrazi su jedna od najmoćnijih značajki Linux Alati za tekst koji vam omogućuju usklađivanje, filtriranje i transformaciju podataka s kompaktnim uzorcima. Ova stranica objašnjava osnovne, intervalne i proširene oblike, plus proširenje zagrada, s primjerima obrade grep-a.
Što su Linux regularni izrazi?
Linux regularni izrazi su posebni znakovi koji pomažu u pretraživanju podataka i podudaranju složenih uzoraka. Regularni izrazi se skraćuju kao 'regexp' ili 'regex'. Koriste se u mnogim Linux programima kao što su grep, bash, preimenovanje, sed i još mnogo toga.
Vrste regularnih izraza
Radi lakšeg razumijevanja, naučimo različite vrste regularnih izraza jednu po jednu. Ova stranica pokriva osnovne, intervalne i proširene regularne izraze, a završava s proširenjem zagrada.
Osnovni regularni izrazi
Neke od često korištenih naredbi koje rade s regularnim izrazima su tr, sed, vii grep. Tablica u nastavku navodi neke od osnovnih regularnih izraza.
| Simbol | Description |
|---|---|
| . | Zamjenjuje bilo koji znak |
| ^ | Odgovara početku niza |
| $ | Odgovara kraju niza |
| * | Ne podudara se s prethodnim znakom ili se ne pojavljuje više puta |
| \ | Predstavlja posebne znakove |
| () | Grupira regularne izraze |
| ? | Odgovara točno jednom znaku |
Pogledajmo primjer. Prvo pokrenite naredbu cat sample za prikaz sadržaja postojeće datoteke, kao što je prikazano dolje.
Zatim potražite sadržaj koji sadrži slovo 'a'. Snimka zaslona u nastavku prikazuje grep koji vraća svaki redak koji sadrži 'a'.
Znak '^' odgovara početku niza. Primjer u nastavku traži sadržaj koji počinje slovom 'a'.
Filtriraju se samo retci koji počinju znakom. Retci koji ne sadrže znak 'a' na početku se zanemaruju.
Pogledajmo još jedan primjer. Snimka zaslona u nastavku ponovno prikazuje sadržaj primjera datoteke prije filtriranja po kraju retka.
Označite samo one retke koji završavaju slovom 't' pomoću sidra '$', kao što je prikazano dolje.
Interval Regularni izrazi
Ovi izrazi određuju broj pojavljivanja znaka u nizu. Navedeni su u nastavku.
| Izraz | Description |
|---|---|
| {ne} | Odgovara prethodnom znaku koji se točno pojavljuje 'n' puta |
| {n,m} | Odgovara prethodnom znaku koji se pojavljuje 'n' puta, ali ne više od m |
| {n,} | Podudara se s prethodnim znakom samo ako se pojavi 'n' puta ili više |
Na primjer, filtrirajte sve retke koji sadrže znak 'p'. Snimka zaslona u nastavku prikazuje odgovarajuće retke.
Sada provjerite pojavljuje li se znak 'p' točno dva puta u nizu, jedan za drugim. Sintaksa za to je:
cat sample | grep -E p\{2}
Rezultat intervalnog meča prikazan je u nastavku.
Napomena: ovim regularnim izrazima morate dodati -E.
Prošireni regularni izrazi
Ovi regularni izrazi kombiniraju više od jednog izraza. Neki od njih su:
| Izraz | Description |
|---|---|
| \+ | Odgovara jednom ili više pojavljivanja prethodnog znaka |
| \? | Odgovara nuli ili jednom pojavljivanju prethodnog znaka |
Na primjer, pretražite sva pojavljivanja znaka 't'. Snimka zaslona u nastavku prikazuje rezultat.
Pretpostavimo da želite filtrirati retke u kojima znak 'a' prethodi znaku 't'. Možete koristiti naredbu poput one u nastavku:
cat sample|grep "a\+t"
Izlaz je prikazan na sljedećoj snimci zaslona.
Proširenje naramenice
Sintaksa za proširenje zagrada je ili niz ili popis stavki odvojenih zarezima unutar vitičastih zagrada '{}'. Početne i završne stavke u nizu odvojene su dvjema točkama '..'.
Neki primjeri prikazani su u nastavku.
U gornjim primjerima, naredba echo stvara nizove pomoću proširenja zagradama, proizvodeći više nizova iz jednog uzorka.










