Linux reguláris kifejezések oktatóanyaga: Grep Regex példa
⚡ Okos összefoglaló
A Linux reguláris kifejezések speciális karaktersorozatok, amelyek adatokat keresnek és összetett mintákat egyeztetnek olyan eszközökben, mint a grep, a sed és a vi, alap, intervallum, kiterjesztett és zárójeles zárójel-kiterjesztésű űrlapokat használva a szöveg pontos szűréséhez.

A reguláris kifejezések az egyik legerősebb funkciója a Linux szövegeszközök, amelyek lehetővé teszik az adatok kompakt mintázatokkal való egyeztetését, szűrését és átalakítását. Ez az oldal ismerteti az alap, az intervallumos és a bővített formákat, valamint a zárójeles bővítést, működő grep példákkal.
Mik azok a Linux reguláris kifejezések?
A Linux reguláris kifejezések speciális karakterek, amelyek segítenek az adatok keresésében és az összetett minták egyeztetésében. A reguláris kifejezések rövidítése „regexp” vagy „regex”. Számos Linux programban használják őket, például a grep, bash, rename, sed és egyebek.
A reguláris kifejezések típusai
A könnyebb megértés érdekében ismerkedjünk meg a különböző típusú reguláris kifejezésekkel egyesével. Ez az oldal az alap, az intervallumos és a bővített reguláris kifejezéseket tárgyalja, és a zárójeles zárójelek bővítésével zárul.
Alapvető reguláris kifejezések
Néhány a reguláris kifejezésekkel működő, gyakran használt parancsok közül: tr, sed, vi, és a grep. Az alábbi táblázat néhány alapvető reguláris kifejezést sorol fel.
| Szimbólum | Leírás |
|---|---|
| . | Bármely karaktert lecserél |
| ^ | Egy karakterlánc elejére illeszkedik |
| $ | Egy karakterlánc végére illeszkedik |
| * | Az előző karakter nulla vagy többszöri egyezését adja meg |
| \ | Speciális karaktereket jelöl |
| () | Csoportosítja a reguláris kifejezéseket |
| ? | Pontosan egy karakterrel egyezik |
Nézzünk egy példát. Először futtasd a cat sample parancsot egy meglévő fájl tartalmának megjelenítéséhez, ahogy az alább látható.
Ezután keressen rá az „a” betűt tartalmazó tartalomra. Az alábbi képernyőképen a grep minden olyan sort visszaad, amely tartalmaz egy „a” betűt.
A '^' kalap karakterlánc kezdetére illeszkedik. Az alábbi példa az 'a' betűvel kezdődő tartalmat keresi.
Csak a karakterrel kezdődő sorok kerülnek szűrésre. Azok a sorok, amelyek elején nem szerepel az 'a' karakter, figyelmen kívül maradnak.
Nézzünk egy másik példát. Az alábbi képernyőkép ismét a mintafájl tartalmát mutatja a sorvég szerinti szűrés előtt.
Csak azokat a sorokat jelöld ki, amelyek 't' betűvel végződnek a '$' horgonyjellel, ahogy az alább látható.
Intervallum Reguláris kifejezések
Ezek a kifejezések egy karakter előfordulásainak számát határozzák meg egy karakterláncban. Az alábbiakban felsoroljuk őket.
| 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éldául szűrje ki az összes olyan sort, amely tartalmazza a 'p' karaktert. Az alábbi képernyőképen láthatók az egyező sorok.
Most ellenőrizd, hogy a 'p' karakter pontosan kétszer szerepel-e egy karakterláncban, egymás után. A szintaxis a következő:
cat sample | grep -E p\{2}
Az intervallum mérkőzés eredménye az alábbiakban látható.
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ést kombinálnak. Néhány ezek közül:
| 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éldául keresse meg a 't' karakter összes előfordulását. Az alábbi képernyőkép mutatja az eredményt.
Tegyük fel, hogy kiszűrni szeretnéd azokat a sorokat, ahol az 'a' karakter megelőzi a 't' karaktert. Használhatsz egy olyan parancsot, mint az alábbi:
cat sample|grep "a\+t"
A kimenet a következő képernyőképen látható.
Merevítő bővítése
A zárójelek kibontásának szintaxisa vagy egy sorozat, vagy egy vesszővel elválasztott lista, amely kapcsos zárójelek között, '{}' található. A sorozat kezdő és befejező elemeit két pont '..' választja el.
Néhány példa alább látható.
A fenti példákban az echo parancs zárójel-bővítéssel hoz létre karakterláncokat, egyetlen mintából több karakterláncot előállítva.










