Helyettesítő karakterek, a.k.a. metakarakterek, isteni áldozatot jelentenek, amikor bizonyos fájlneveket kell keresni egy halom hasonló nevű fájlból. Például a Wildcards használatával a Linuxban használhatja a ls parancs, rm parancsot, vagy bármely más Linux parancsot, több fájlban, feltéve, hogy megfelelnek a megadott feltételeknek.
Ebben az olvasmányban megvitatjuk, hogyan használhatja a helyettesítő karaktereket a Linux rendszerben a munkafolyamat egyszerűsítéséhez és produktívabbá tételéhez. De először nézzük meg gyorsan a Linux legerősebb és leggyakrabban használt helyettesítőit:
- Asterisk (*): A (*) a helyettesítő karakter tetszőleges számú ismeretlen karaktert jelöl. Ez akkor hasznos, ha dokumentumokat vagy fájlokat keres, de csak a nevének egy részére emlékszik.
- A kérdőjel (?): A (?) a helyettesítő karakter csak egy ismeretlen karaktert képvisel. Ez akkor hasznos, ha van egy hasonló nevű fájlok listája, és nem biztos néhány karakterben.
- Zárójeles karakterek ([]): A ([]) helyettesítő karakter - a harmadik zárójel és nem az első zárójel - arra használható, hogy illeszkedjen a zárójelben megadott karakterek bármely előfordulásához. Ez a lehetőség hasznos, ha nagy- és kisbetűs fájlokkal foglalkozik, amint később látni fogjuk.
Most már rájöttem, hogy ennek az információnak nincs értelme, ha még soha nem foglalkozott helyettesítő karakterekkel. Azonban, hogy segítsen tisztázni a zavart, összeállítottunk egy részletes útmutatót, amely 10 példát tartalmaz, hogy megbizonyosodjon arról, hogy megfelelően megérti-e a helyettesítő karakterek működését, és saját maga kezdi el használni őket.
Példák a fájlnevek egyeztetésére a helyettesítő karakterek használatával
Először is használjuk az összes különféle helyettesítő karaktert, amelyet korábban megbeszéltünk, és nézzük meg, hogyan lehet őket felhasználni a fájlnevek egyeztetésére. Ehhez a következő fájlkészletet fogjuk használni:
- Ez a parancs megegyezik az összes betűvel kezdődő fájlnévvel M és bármely karakter egy vagy több előfordulásával végződik.
$ ls -l M *
Kimenet:
Figyelje meg, hogy csak a nagy „M” betűvel kezdődő fájlokat illeszti össze, a „m” kisbetűket nem.
2. Ez a parancs az összes kezdő fájlnevet átmásolja Adataim és bármely karakter egy vagy több előfordulásával végződik.
$ ls Saját adatok *
Kimenet:
3. Ez a parancs minden betűvel kezdődő fájlt meg fog egyezni M, betűvel végződik N, és bármelyik 1 karakter van közöttük.
$ ls M?N.SH
Kimenet:
4. Ez a parancs minden betűvel kezdődő fájlt meg fog egyezni M, betűvel végződik N, de ha csak 1 karakter van köztük, az a szögletes zárójelben megadott karakterek listájába tartozik [AEIOU].
$ ls M [AEIOU] N.SH
Kimenet:
4 példa a különféle helyettesítő karakterek fájlnevek összeegyeztetésére
A hatékonyság növelése érdekében keverje össze ezeket a helyettesítő karaktereket, hogy működjenek együtt, és hatékonyabban tudják elérni a fájlneveket.
- Itt van egy parancs, amely segít megtalálni minden olyan fájlnevet, amely 3 karakterből állhat (beleértve a karaktereket sem), amelyet követhet torta és bármely karakter egy vagy több előfordulásával végződik.
$ ls ???torta*
Kimenet:
2. Itt van egy parancs, amely megegyezik az összes olyan fájlnévvel, amely a szögletes zárójelben található bármelyik karakterrel kezdődik [MNLOP] és bármely karakter egy vagy több előfordulásával végződik.
Lássuk azt is, mi történik, ha lecseréljük [MNLOP] val vel [mnlop].
Tehát a használni kívánt parancsok a következők:
$ ls [MNLOP] *
$ ls [mnlop] *
Kimenet:
Amint láthatja, tisztában kell lennie a zárójeles helyettesítő karakterbe bevitt betűk nagy- és kisbetűivel, mivel ezek befolyásolják az eredményt.
3. Itt van egy parancs, amely minden fájlnévnek megfelel ezeknek a karaktereknek [MNLOP] elsőként e karakterek bármelyike [AEIOU] a másodikként, utána következik N, és végül bármely karakter egy vagy több előfordulásával végződik.
$ ls [MNLOP] [AEIOU] N *
Kimenet:
Figyelje meg, hogy a (*) a wildcard csak segít megtalálni a fájlnevek összes kiterjesztését.4.
Ez egy olyan parancs, amely megegyezik az összes fájlnévvel, és amely bármelyik karakter egy vagy több előfordulásával kezdődik M, utána bármely 1 karakter, majd utána következik N, majd bármely karakter egy vagy több előfordulásával végződik.
$ ls * M?N *
Kimenet:
Helyettesítő karakterek használata a karakterkészlethez
Mostanra már ismernie kell a helyettesítő karakterek működését. Most néhány olyan speciális használatra összpontosíthatunk, ahol a helyettesítő karakterek felbecsülhetetlen értékűek.
Például a zárójeles helyettesítő karakter lehetővé teszi a karakterek tartományának meghatározását a [-] ahelyett, hogy minden karaktert kiírna. Ez rendkívül hasznos lehet, ha meg akar adni egy karakterkészletet és a fájlneveket egyeztetni a karakterek helye alapján.
Ehhez a következő fájlkészletet fogjuk használni, a képen látható módon:
Amint láthatja, az általunk létrehozott kép egy fájl listája, amely különböző Pokemon adatokat tartalmaz.
Most megtalálja az összes kezdő fájlnevet pokemon- után egy szám, majd bármely alfanumerikus karakter, ismét egy szám, majd bármely karakter egy vagy több előfordulásával végződve, a következő parancsot használhatjuk:
$ ls pokemon- [0-9] [0-9a-zA-Z] [0-9] *
Kimenet:
A rész [0–9] közötti bármely numerikus karaktert jelöli 0 nak nek 9.
A következő rész [0-9a-zA-Z] tetszőleges számú karaktert jelöl 0 nak nek 9, vagy bármilyen kisbetű között a nak nek z, vagy nagybetű között A nak nek Z.
Mint ilyen, ha kikapcsolunk [0-9a-zA-Z] val vel [0-9a-z], láthatja, hogy az eredmény nem tartalmaz olyan fájlnevet, amelynek nagybetűi vannak a kijelölt helyen.
$ ls pokemon- [0-9] [0-9a-z] [0-9] *
Kimenet:
Helyettesítő karakterek használata egy karakterkészlet megtagadásához
Akárcsak megadhat egy karakterkészletet, akár egy karakterkészletet is elvethet, miközben megfelel a fájlneveknek. Itt van egy példa arra, hogyan történik:
$ ls pokemon- [0-9] [!a-z] [0-9] *
Kimenet:
Ez egyezik az összes kezdő fájlnévvel pokemon- utána bármely számjegyből áll, majd a kisbetűk kivételével bármelyik karakterből, majd bármelyik számjegyből, és végül bármely karakter egy vagy több előfordulásával végződik.
Használata [!a-z], tagadjuk az összes kisbetű halmazát. A fájlnevek minden olyan karakterhez hozzá vannak rendelve, amely nem kisbetű.
Csomagolás
Tehát ezzel véget érünk a Linux helyettesítő karakterekkel és azok használatával kapcsolatos gyors áttekintésünkön. Összefoglalva mindent, dióhéjban a csillag (*) a helyettesítő karakter akkor a leghasznosabb, ha ismeri a fájlnevet, de a kiterjesztést nem. A kérdőjel (?) helyettesítő karakter segíthet, ha elfelejt néhány fájlnév karaktert. A zárójel ([]) a helyettesítő karakter akkor hasznos, ha a keresést meghatározott karakterkészletben kívánja tartalmazni.