‚?‘ se používá k přiřazení libovolného jednotlivého znaku. Můžeš použít ‚?‘ pro vícekrát pro shodu více znaků.
Příklad-1:
Předpokládejme, že chcete vyhledávat názvy textových souborů, jejichž názvy jsou 4 znaky dlouhé a mají příponu .txt . Globbovací vzor můžete použít pomocí ‘ ? “Čtyřikrát, abych tento úkol provedl.
Vyhledejte seznam všech souborů a složek aktuálního adresáře.
$ls-ten
Spusťte následující příkaz a vyhledejte soubory, jejichž názvy jsou čtyři znaky dlouhé a neznámé.
$ ls -l ????. txt
Příklad-2:
Předpokládejme, že chcete prohledávat soubory dokumentů, jejichž názvy jsou 8 znaků dlouhé, první 4 znaky jsou f, o, o a t a rozšíření je doc . Chcete -li prohledávat soubory, spusťte následující příkaz s globbovacím vzorem.
$ls -tennoha ????. doc
Příklad-3:
Předpokládejme, že víte, že název souboru je 'nejlepší' a přípona je 3 znaky dlouhá, ale neznám příponu. Spusťte následující příkaz pomocí ‘? “Prohledá všechny soubory s názvem„ test “s libovolnou příponou o třech znacích.
$ls -tennejlepší.???
Hvězdička - (*)
'*' se používá pro shodu nula nebo více znaků. Pokud máte k vyhledávání jakéhokoli souboru nebo informací méně informací, můžete použít '*' v globbujícím vzoru.
Příklad -1:
Předpokládejme, že chcete prohledávat všechny soubory 'Pl' rozšíření. Spusťte následující příkaz pomocí '*' udělat ten úkol.
$ls -ten *.pl
Příklad-2:
Předpokládejme, že znáte počáteční znak pouze názvu souboru, který je 'na' . Spuštěním následujícího příkazu pomocí „*“ vyhledáte všechny soubory aktuálního adresáře, jejichž názvy začínají 'na' .
$ls -tenna*.*
Příklad-3:
„*“ Ve skriptu bash můžete použít pro různé účely bez hledání souborů. Vytvořte bash soubor s názvem 'Check.sh' s následujícím skriptem. Zde, když uživatel napíše „ y “nebo„ Y “nebo„ ano “nebo„ ano “ pak „Potvrzeno“ vytiskne a kdy typ napíše „N“ nebo „N“ nebo „ne“ nebo „ne“ pak 'Nepotvrzeno' vytiskne.
#!/bin/bashvyhodil 'Chcete potvrdit?'
čístOdpovědět
případ $ odpověď v
[Ano]* ) vyhodil 'Potvrzeno.';;
[Č]* ) vyhodil 'Nepotvrzeno.';;
*) vyhodil 'Zkus to znovu.';;
esac
Spusťte skript.
$bashcheck.sh
Hranatá závorka - ([])
„[]“ se používá k přiřazení postavy z dosahu. Některá z většinou používaných deklarací dosahu jsou uvedena níže.
Všechny velké abecedy jsou definovány rozsahem jako, [: upper:] nebo [A-Z].
Všechny malé abecedy jsou definovány rozsahem jako, [: nižší:] nebo [a-z].
Všechny číselné číslice jsou definovány rozsahem jako, [: číslice:] nebo [0-9].
Všechny velké a malé abecedy jsou definovány rozsahem jako, [: alpha:] nebo [a-zA-z].
Všechny velké abecedy, malá abeceda a číslice jsou definovány rozsahem jako, [: alnum:] nebo [a-zA-Z0-9]
Příklad -1:
Spusťte následující příkaz a prohledejte všechny soubory a složky, jejichž název obsahuje p nebo co nebo r nebo s .
$ls -ten [p-s]*
Příklad-2:
Spuštěním následujícího příkazu vyhledáte všechny soubory a složky, jejichž název začíná libovolnou číslicí od 1 do 5.
$ls -ten [1-5]*
Chybí mu - (^)
Můžeš použít '^' s hranatou závorkou pro konkrétnější definování vzoru globbingu. '^' lze použít uvnitř i vně hranaté závorky. „^“ Se používá mimo hranatou závorku k vyhledávání obsahu souboru, který začíná daným rozsahem znaků. „^“ Se používá v hranaté závorce k zobrazení veškerého obsahu souboru zvýrazněním řádků začínajících daným rozsahem znaků. Pro vyhledávání konkrétního obsahu ze souboru můžete použít různé typy vzorů globování. 'rukojeť' příkaz se používá pro vyhledávání obsahu v bash. Předpokládejme, že máte textový soubor s názvem „List.txt“ s následujícím obsahem. Pro daný soubor vyzkoušejte následující příklady.
Jablko4000
Banán
700
oranžový
850
Hruška
9000
jackdruit
Příklad - 1:
Spusťte následující příkaz a vyhledejte tyto řádky list.txt soubor začínající na P nebo Q nebo R. .
$ grep '^[P-R]' list.txt
Příklad - 2:
Spuštěním následujícího příkazu zvýrazněte tyto řádky list.txt soubor začínající na A nebo B nebo C. .
$ grep '[^A-C]' list.txt
Vykřičník - (!)
Můžeš použít '!' uvnitř vzorového rozsahu. Funguje to stejně jako použití symbolu „^“ mimo vzor rozsahu. Několik příkladů použití '!' značka je uvedena níže.
Příklad - 1:
Spuštěním následujícího příkazu zobrazíte tyto řádky list.txt soubor začínající na „P“ nebo Q nebo R. .
$ grep [! P-R] list.txt
Příklad - 2:
Spuštěním následujícího příkazu zobrazíte tyto řádky list.txt soubor, který začíná libovolnou číslicí z 4 až 8 .
$ grep [! 4-8] list.txt
Znak dolaru - ($)
'$' slouží k definování koncového znaku. Pokud víte, že chcete vyhledávat informace podle posledního znaku, můžete použít '$' v globbujícím vzoru.
Příklad - 1:
Spusťte následující příkaz a vyhledejte tyto řádky list.txt soubor, který končí na 'na' .
$ grep a $ list.txt
Příklad - 2:
Spusťte následující příkaz a vyhledejte tyto řádky list.txt soubor, který končí číslem padesátka .
$ grep 50 $ list.txt
Curly bracket - ({})
'{}' lze použít k párování názvů souborů s více než jedním globbingovým vzorem. Každý vzor je v složené závorce bez mezer oddělený znakem „,“. Některé příklady jsou uvedeny níže.
Příklad - 1:
Spusťte následující příkaz a vyhledejte soubory, jejichž názvy jsou 5 znaků dlouhé a přípona je 'Sh' nebo poslední dva znaky souborů jsou 'Svatý' a rozšíření je 'Txt' .
$ ls -l {?????. sh,*st.txt}
Příklad - 2:
Spuštěním následujícího příkazu odstraníte všechny soubory, jejichž přípony jsou „Doc“ nebo „docx“ .
$rm {*.doc,*.docx}
Potrubí - (|)
Znak „|“ se také používá k aplikaci více než jedné podmínky na globbující vzor. Každý vzor je v příkazu oddělen symbolem ‘|‘.
Příklad - 1:
Spusťte následující příkaz a vyhledejte názvy souborů, které začínají znakem „a“ a mají příponu „bash“ nebo „sh“.
$lsna*+(.bash|.sh)Příklad - 2:
Vytvořte bash soubor s názvem „Menu.bash“ a přidejte následující skript. Pokud uživatel zadá 1 nebo S. pak se vytiskne Hledání textu . Pokud uživatel zadá 2 nebo R. pak se vytiskne Nahrazování textu . Pokud uživatel zadá 3 nebo D pak se vytiskne Mazání textu . Vytiskne se Zkus to znovu pro jakýkoli jiný vstup.
#!/bin/bashvyhodil 'Vyberte libovolnou možnost z nabídky:'
čístOdpovědět
případ $ odpověď v
1 |S) vyhodil 'Hledání textu';;
2 |R.) vyhodil 'Nahrazování textu';;
3 |D) vyhodil 'Mazání textu';;
*) vyhodil 'Zkus to znovu.';;
esac
Spusťte skript.
$bashmenu.bash
ZÁVĚR
V tomto tutoriálu jsou pomocí velmi jednoduchých příkladů vysvětleny některé z nejčastěji používaných globbingových vzorů. Doufám, že po procvičení výše uvedených příkladů vám bude koncept globbingu jasný a budete jej moci úspěšně aplikovat v bash příkazech a skriptech.
Pro více informací sledujte toto video: