Bash Globbing bemutató

Bash Globbing Tutorial



A Bash nem támogatja a natív reguláris kifejezéseket, mint néhány más szabványos programozási nyelv. A Bash shell funkciót, amelyet bizonyos típusú minták illesztésére vagy kibővítésére használnak, globálisnak nevezzük. A Globbing -ot elsősorban a fájlnevek egyeztetésére vagy a fájl tartalmának keresésére használják. A Globbing helyettesítő karaktereket használ a minta létrehozásához. Az alábbiakban ismertetjük a leggyakoribb helyettesítő karaktereket, amelyeket globbing minták létrehozásához használnak.

'?' bármelyik karakter egyezésére szolgál. Te tudod használni '?' többször is több karakter egyezéséhez.







1. példa:



Tegyük fel, hogy azokban a szöveges fájlnevekben szeretne keresni, amelyek neve 4 karakter hosszú és kiterjesztése .txt . A gömbminta alkalmazható a ' ? ’Négyszer ezt a feladatot.



Keresse meg az aktuális könyvtár összes fájljának és mappájának listáját.





$ls-az

Futtassa a következő parancsot, és keresse meg azokat a fájlokat, amelyek neve négy karakter hosszú és ismeretlen.

$ ls -l ????. txt



2. példa:

Tegyük fel, hogy azokban a dokumentumfájlokban szeretne keresni, amelyek neve 8 karakter hosszú, az első 4 karakter hosszú f, o, o és t és a kiterjesztés az dok . Futtassa a következő parancsot globális mintával a fájlok kereséséhez.

$ls -azláb ????. doki

3. példa:

Tegyük fel, hogy tudja a fájl nevét 'legjobb' és a kiterjesztés 3 karakter hosszú, de nem ismeri a kiterjesztést. Futtassa a következő parancsot a használatával ’? ”Keresni az összes„ test ”nevű fájlban, amelynek bármilyen kiterjesztése három karakter hosszú.

$ls -azlegjobb.???

Csillag - (*)

'*' nulla vagy több karakter egyezésére szolgál. Ha kevesebb információval rendelkezik bármely fájl vagy információ kereséséhez, akkor használhatja '*' gömbölyű mintában.

Példa -1:

Tegyük fel, hogy az összes fájlban szeretne keresni „Pl” kiterjesztés. Futtassa a következő parancsot a segítségével '*' hogy elvégezze azt a feladatot.

$ls -az *.pl

2. példa:

Tegyük fel, hogy csak a fájlnév kezdő karakterét ismeri 'nak nek' . Futtassa a következő parancsot a „*” használatával, hogy megkeresse az aktuális könyvtár összes fájlját, amelyek nevével kezdődik 'nak nek' .

$ls -aznak nek*.*

3. példa:

A „*” betűt a bash scriptben különböző célokra alkalmazhatja fájlok keresése nélkül. Hozzon létre egy bash fájlt 'Check.sh' a következő forgatókönyvvel. Itt, amikor a felhasználó beírja a „ y 'vagy' Y 'vagy' igen 'vagy' Igen ' azután 'megerősített' nyomtat és mikor írja be a típus „N” vagy „N”, vagy „nem” vagy „nem” azután 'Nem megerősített' nyomtatni fog.

#!/bin/bash
kidobta - Megerősíteni akar?
olvasválasz
ügy $ válasz ban ben
[Ja]* ) kidobta 'megerősített.';;
[Sz]* ) kidobta 'Nem megerősített.';;
*) kidobta 'Próbáld újra.';;
esac

Futtassa a szkriptet.

$bashellenőrizze.sh

Szögletes zárójel - ([])

'[]' a tartomány karakterének megfeleltetésére szolgál. Az alábbiakban megemlítünk néhány, leggyakrabban használt tartománynyilatkozatot.

Az összes nagybetűt a tartomány határozza meg, [: felső:] vagy [A-Z].

Az összes kisbetűs ábécét a tartomány határozza meg, [: alsó:] vagy [a-z].

Az összes számjegyet a tartomány határozza meg, [: szám:] vagy [0-9].

Az összes nagy- és alsó ábécét a tartomány határozza meg, [: alfa:] vagy [a-zA-z].

Az összes nagybetűt, kisbetűt és számjegyet a tartomány határozza meg, [: alnum:] vagy [a-zA-Z0-9]

Példa -1:

Futtassa a következő parancsot, hogy megkeresse az összes fájlt és mappát, amelyek nevét tartalmazza o vagy mit vagy r vagy s .

$ls -az [p-s]*

2. példa:

Futtassa a következő parancsot az összes fájl és mappa kereséséhez, amelyek neve 1 -től 5 -ig terjedő számjeggyel kezdődik.

$ls -az [1-5]*

Hiányzik - (^)

Te tudod használni '^' szögletes zárójelben, hogy pontosabban meghatározza a gömbölyű mintát. '^' szögletes zárójelben belül vagy kívül is használható. A „^” a szögletes zárójelen kívül használható a fájl azon tartalmának keresésére, amelyek adott karaktertartománnyal kezdődnek. A „^” a szögletes zárójelben található a fájl összes tartalmának megjelenítéséhez, a sorok egy adott karaktertartománnyal kezdődő kiemelésével. Különböző típusú görbítési mintákat használhat bizonyos fájlok tartalmának kereséséhez. 'markolat' parancsot a tartalom keresésére használják bash -ban. Tegyük fel, hogy szöveges fájlja van 'List.txt' a következő tartalommal. Tesztelje az alábbi példákat erre a fájlra.

alma
4000
Banán
700
narancssárga
850
Körte
9000
jackdruit

Példa - 1:

Futtassa a következő parancsot a sorok kereséséhez list.txt fájl, amely ezzel kezdődik P vagy Q vagy R .

$ grep '^[P-R]' list.txt

Példa - 2:

Futtassa a következő parancsot a sorok kiemeléséhez list.txt fájl, amely ezzel kezdődik A vagy B vagy C .

$ grep '[^A-C]' list.txt

Felkiáltójel - (!)

Te tudod használni '!' a tartománymintán belül. Ugyanúgy működik, mint a „^” szimbólum használata a tartománymintán kívül. Néhány példa a használatára '!' jelét az alábbiakban adjuk meg.

Példa - 1:

Futtassa a következő parancsot a sorok megjelenítéséhez list.txt fájl, amely ezzel kezdődik „P” vagy Q vagy R .

$ grep [! P-R] list.txt

Példa - 2:

Futtassa a következő parancsot a sorok megjelenítéséhez list.txt fájlt, amely bármelyik számjeggyel kezdődik 4-8 .

$ grep [! 4-8] list.txt

Dollárjel - ($)

'$' a befejező karakter meghatározására szolgál. Ha tudja, hogy az utolsó karakter alapján szeretne információt keresni, akkor használhatja '$' gömbölyű mintában.

Példa - 1:

Futtassa a következő parancsot a sorok kereséséhez list.txt fájl, amely végződik 'nak nek' .

$ grep a $ list.txt fájlt

Példa - 2:

Futtassa a következő parancsot a sorok kereséséhez list.txt fájlt, amely számmal végződik ötven .

$ grep 50 $ list.txt

Göndör zárójel - ({})

„{}” használható a fájlnevek egynél több globális mintával való párosítására. Minden mintát göndör zárójeles „,” jel választ el, szóköz nélkül. Néhány példa az alábbiakban található.

Példa - 1:

Futtassa a következő parancsot azoknak a fájloknak a kereséséhez, amelyek neve 5 karakter hosszú, és a kiterjesztés 'SH' vagy a fájlok utolsó két karaktere 'utca' és a kiterjesztés az 'Txt' .

$ ls -l {?????. sh,*st.txt}

Példa - 2:

Futtassa a következő parancsot az összes fájl törléséhez, amelynek kiterjesztései „Doc” vagy „docx” .

$rm {*.doc,*.docx}

Cső - (|)

A „|” jel egynél több feltétel alkalmazására is szolgál a gömbölyű mintán. A parancsban minden mintát „|” szimbólum választ el.

Példa - 1:

Futtassa a következő parancsot azoknak a fájlneveknek a kereséséhez, amelyek „a” karakterrel kezdődnek, és „bash” vagy „sh” kiterjesztéssel rendelkeznek.

$lsnak nek*+(.bash|.SH)

Példa - 2:

Hozzon létre egy bash fájlt 'Menu.bash' és adja hozzá a következő szkriptet. Ha a felhasználói típus 1 vagy S akkor nyomtatni fog Szöveg keresése . Ha a felhasználói típus 2 vagy R akkor nyomtatni fog Szöveg cseréje . Ha a felhasználói típus 3 vagy D. akkor nyomtatni fog Szöveg törlése . Kinyomtatja Próbáld újra bármilyen más bemenethez.

#!/bin/bash
kidobta 'Válasszon bármely lehetőséget a menüből:'
olvasválasz
ügy $ válasz ban ben
1 |S) kidobta 'Szöveg keresése';;
2 |R) kidobta 'Szöveg cseréje';;
3 |D) kidobta 'Szöveg törlése';;
*) kidobta 'Próbáld újra.';;
esac

Futtassa a szkriptet.

$bashmenü.bash

KÖVETKEZTETÉS

A leggyakrabban használt gömbölyzési minták némelyike ​​ebben az oktatóanyagban nagyon egyszerű példákon keresztül kerül elmagyarázásra. Remélem, a fenti példák gyakorlása után a globbing fogalma világos lesz számodra, és sikeresen alkalmazhatod a bash parancsokban és parancsfájlokban.

További információért nézze meg ezt a videót: