Linux reguláris kifejezések oktatóanyaga: Grep Regex példa
Mik azok a Linux reguláris kifejezések?
Linux reguláris kifejezések olyan speciális karakterek, amelyek segítik az adatok keresését és az összetett minták egyeztetését. A reguláris kifejezések rövidítése 'regexp' vagy 'regex'. Számos Linux-programban használják, például grep, bash, átnevezés, sed stb.
A reguláris kifejezések típusai
A könnyebb érthetőség érdekében egyenként tanuljuk meg a Regex különböző típusait.
Kattints itt ha a videó nem érhető el
Alapvető reguláris kifejezések
A reguláris kifejezésekkel gyakran használt parancsok közül néhány a tr, sed, vi és grep. Az alábbiakban felsorolunk néhány alapvető Regex-et.
Szimbólum | Descriptionok |
---|---|
. | bármely karaktert helyettesít |
^ | egyezések a karakterlánc eleje |
$ | egyezik a karakterlánc végével |
* | nulla vagy többszöröse megegyezik az előző karakterrel |
\ | Speciális karaktereket ábrázol |
() | Csoportosítja a reguláris kifejezéseket |
? | Pontosan egy karakternek felel meg |
Lássunk egy példát.
A macskaminta végrehajtása egy meglévő fájl tartalmának megtekintéséhez
'a' betűt tartalmazó tartalom keresése.
"^' egy karakterlánc elejére egyezik. Keressünk olyan tartalmat, amely a-val KEZDŐDIK
Csak a karakterrel kezdődő sorok szűrhetők. Azokat a sorokat, amelyek nem tartalmazzák az „a” karaktert, figyelmen kívül hagyjuk.
Nézzünk egy másik példát –
Csak azokat a sorokat válassza ki, amelyek t segítségével végződnek $
Intervallum Reguláris kifejezések
Ezek a kifejezések megmondják, hogy egy karakter hányszor fordul elő egy karakterláncban. Ők
Kifejezés | Leírás |
---|---|
{nem} | Pontosan megegyezik az 'n'-szer megjelenő előző karakterrel |
{n, m} | Megfelel a megelőző karakternek, amely „n”-szer jelenik meg, de legfeljebb m |
{n, } | Csak akkor felel meg az előző karakternek, ha „n”-szer vagy többször megjelenik |
Példa:
Szűrje ki az összes olyan sort, amely "p" karaktert tartalmaz
Azt akarjuk ellenőrizni, hogy a 'p' karakter pontosan 2-szer szerepel-e egy karakterláncban egymás után. Ehhez a szintaxis a következő lenne:
cat sample | grep -E p\{2}
Megjegyzés: Ezekkel a reguláris kifejezésekkel -E-t kell hozzáadnia.
Kibővített reguláris kifejezések
Ezek a reguláris kifejezések egynél több kifejezés kombinációit tartalmazzák. Néhány közülük:
Kifejezés | Leírás |
---|---|
\+ | Megfelel az előző karakter egy vagy több előfordulásának |
\? | Az előző karakter nullával vagy egy előfordulásával egyezik |
Példa:
Az összes "t" karakter keresése
Tegyük fel, hogy ki akarjuk szűrni azokat a sorokat, ahol az "a" karakter megelőzi a "t" karaktert
Használhatunk hasonló parancsokat
cat sample|grep "a\+t"
Merevítő bővítése
A kapcsos zárójelek kibontásának szintaxisa egy sorozat vagy egy vesszővel elválasztott lista a kapcsos zárójelben található „{}”-ban. A sorozat kezdő és záró elemeit két „...” pont választja el.
Néhány példa:
A fenti példákban az echo parancs karakterláncokat hoz létre a kapcsos zárójel-kiterjesztés segítségével.
Összefoglaló:
- A reguláris kifejezések a karakterláncok mintáinak ellenőrzésére használt karakterkészletek
- „regexp”-nek és „regex”-nek is nevezik őket
- A szkriptek írásához fontos a reguláris kifejezések megtanulása
- Néhány alapvető reguláris kifejezés:
Szimbólum | Descriptionok |
---|---|
. | bármely karaktert helyettesít |
^ | egyezések a karakterlánc eleje |
$ | egyezik a karakterlánc végével |
- Néhány kiterjesztett reguláris kifejezés:
Kifejezés | Leírás |
---|---|
\+ |
Megfelel az előző karakter egy vagy több előfordulásának |
\? | Az előző karakter nullával vagy egy előfordulásával egyezik |
- Néhány intervallum reguláris kifejezés:
Kifejezés | Leírás |
---|---|
{nem} | Pontosan megegyezik az 'n'-szer megjelenő előző karakterrel |
{n, m} | Megfelel a megelőző karakternek, amely „n”-szer jelenik meg, de legfeljebb m |
{n, } | Csak akkor felel meg az előző karakternek, ha „n”-szer vagy többször megjelenik |
- A kapcsos zárójel kiterjesztése karakterláncok generálására szolgál. Segít több karakterlánc létrehozásában egyből.