Výukový program Bash Globbing

Bash Globbing Tutorial



Bash nepodporuje pôvodné regulárne výrazy ako niektoré iné štandardné programovacie jazyky. Funkcia Bash shell, ktorá sa používa na prispôsobenie alebo rozšírenie konkrétnych typov vzorov, sa nazýva globbing. Globbing sa používa hlavne na priradenie názvov súborov alebo vyhľadávanie obsahu v súbore. Globbing používa na vytvorenie vzoru zástupné znaky. Najbežnejšie zástupné znaky, ktoré sa používajú na vytváranie globbovacích vzorov, sú popísané nižšie.

'?' sa používa na priradenie ľubovoľného jedného znaku. Môžeš použiť '?' viackrát na priradenie viacerých znakov.







Príklad-1:



Predpokladajme, že chcete hľadať v tých textových názvoch súborov, ktorých názvy majú 4 znaky a príponu .TXT . Globbovací vzor môžete použiť pomocou príkazu „ ? “Na vykonanie tejto úlohy štyrikrát.



Vyhľadajte zoznam všetkých súborov a priečinkov v aktuálnom adresári.





$ls-ten

Spustite nasledujúci príkaz a vyhľadajte súbory, ktorých názvy sú štyri znaky dlhé a neznáme.

$ ls -l ????. txt



Príklad 2:

Predpokladajme, že chcete hľadať v súboroch dokumentov, ktorých názvy sú 8 znakov dlhé, prvé 4 znaky sú f, o, o a t a rozšírenie je doc . Na vyhľadanie súborov spustite nasledujúci príkaz s globbovacím vzorom.

$ls -tennoha ????. doc

Príklad 3:

Predpokladajme, že poznáte názov súboru „Najlepší“ a rozšírenie má 3 znaky, ale rozšírenie nepoznáte. Spustite nasledujúci príkaz pomocou ‘? “Na vyhľadanie všetkých súborov s názvom„ test “s akoukoľvek príponou troch znakov.

$ls -tennajlepšie. ???

Hviezdička - (*)

'*' sa používa na priradenie nuly alebo viacerých znakov. Ak máte menej informácií na vyhľadávanie akéhokoľvek súboru alebo informácií, môžete použiť '*' v guľovom vzore.

Príklad -1:

Predpokladajme, že chcete prehľadávať všetky súbory z „Pl“ predĺženie. Spustite nasledujúci príkaz pomocou '*' splniť túto úlohu.

$ls -ten *.pl

Príklad 2:

Predpokladajme, že poznáte začiatočný znak iba názvu súboru, ktorý je „do“ . Spustite nasledujúci príkaz pomocou „*“ a vyhľadajte všetky súbory v aktuálnom adresári, ktorých názvy začínajú „do“ .

$ls -tendo*.*

Príklad 3:

„*“ V skriptu bash môžete použiť na rôzne účely bez hľadania súborov. Vytvorte bash súbor s názvom 'Check.sh' s nasledujúcim skriptom. Tu používateľ zadá „ y “alebo„ Y “alebo„ áno “alebo„ áno “ potom „Potvrdené“ vytlačí a kedy typ napíše „N“ alebo „N“ alebo „nie“ alebo „nie“ potom 'Nepotvrdené' vytlačí.

#!/bin/bash
zahodil „Chcete to potvrdiť?“
čítaťodpovedz
prípad $ odpoveď v
[Áno]* ) zahodil 'potvrdené.';;
[Č]* ) zahodil 'Nepotvrdené.';;
*) zahodil „Skúste to znova.“;;
esac

Spustite skript.

$bashcheck.sh

Hranatá zátvorka - ([])

„[]“ sa používa na priradenie postavy z rozsahu. Niektoré z väčšinou používaných vyhlásení o dosahu sú uvedené nižšie.

Všetky veľké abecedy sú definované rozsahom ako, [: veľké:] alebo [A-Z].

Všetky malé abecedy sú definované rozsahom ako, [: nižšie:] alebo [a-z].

Všetky číselné číslice sú definované rozsahom ako, [: číslica:] alebo [0-9].

Všetky veľké a malé abecedy sú definované rozsahom ako, [: alfa:] alebo [a-zA-z].

Všetky veľké abecedy, malé abecedy a číslice sú definované rozsahom ako, [: alnum:] alebo [a-zA-Z0-9]

Príklad -1:

Spustením nasledujúceho príkazu vyhľadajte všetky súbory a priečinky, ktorých názov obsahuje p alebo čo alebo r alebo s .

$ls -ten [p-s]*

Príklad 2:

Spustením nasledujúceho príkazu vyhľadáte všetky súbory a priečinky, ktorých názov začína ľubovoľnou číslicou od 1 do 5.

$ls -ten [1-5]*

Chýba mu - (^)

Môžeš použiť „^“ so hranatou zátvorkou na presnejšie definovanie vzoru globalizácie. „^“ môže byť použitý vo vnútri alebo mimo hranatej zátvorky. „^“ Sa používa mimo hranatej zátvorky na vyhľadávanie obsahu súboru, ktorý začína daným rozsahom znakov. „^“ Sa používa v hranatej zátvorke na zobrazenie celého obsahu súboru zvýraznením riadkov začínajúcich daným rozsahom znakov. Na vyhľadávanie konkrétneho obsahu v súbore môžete použiť rôzne typy vzorov globovania. 'úchop' príkaz sa používa na vyhľadávanie obsahu v bash. Predpokladajme, že máte textový súbor s názvom „List.txt“ s nasledujúcim obsahom. Pre daný súbor vyskúšajte nasledujúce príklady.

Apple
4000
Banán
700
Oranžová
850
Hruška
9000
jackdruit

Príklad - 1:

Spustením nasledujúceho príkazu vyhľadajte tieto riadky list.txt súbor, ktorý začína na P alebo Q alebo R. .

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

Príklad - 2:

Spustením nasledujúceho príkazu zvýraznite tieto riadky list.txt súbor, ktorý začína na A alebo B alebo C. .

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

Výkričník - (!)

Môžeš použiť '!' vo vnútri vzoru rozsahu. Funguje to rovnako ako použitie symbolu „^“ mimo vzor rozsahu. Niekoľko príkladov použitia '!' značka je uvedená nižšie.

Príklad - 1:

Spustite nasledujúci príkaz, aby ste zobrazili tieto riadky list.txt súbor, ktorý začína na „P“ alebo Q alebo R. .

$ grep [! P-R] list.txt

Príklad - 2:

Spustite nasledujúci príkaz, aby ste zobrazili tieto riadky list.txt súbor, ktorý začína ľubovoľným číslom z 4 až 8 .

$ grep [! 4-8] list.txt

Znak dolára - ($)

'$' sa používa na definovanie koncového znaku. Ak viete, že chcete vyhľadávať informácie podľa posledného znaku, môžete použiť '$' v guľovom vzore.

Príklad - 1:

Spustením nasledujúceho príkazu vyhľadajte tieto riadky list.txt súbor, ktorý končí príponou „do“ .

$ grep a $ list.txt

Príklad - 2:

Spustením nasledujúceho príkazu vyhľadajte tieto riadky list.txt súbor, ktorý končí číslom päťdesiat .

$ grep 50 $ list.txt

Kučeravá zátvorka - ({})

'{}' môžu byť použité na priradenie názvov súborov k viac ako jednému globbovacím vzorom. Každý vzor je v zloženej zátvorke oddelený znakom „,“ bez medzery. Niektoré príklady sú uvedené nižšie.

Príklad - 1:

Spustením nasledujúceho príkazu vyhľadajte súbory, ktorých názvy majú 5 znakov a príponu 'Sh' alebo sú posledné dva znaky súborov 'St' a rozšírenie je 'TXT' .

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

Príklad - 2:

Spustením nasledujúceho príkazu vymažete všetky súbory, ktorých prípony sú „Doc“ alebo „docx“ .

$rm {*.doc,*.docx}

Rúra - (|)

Znak „|“ sa používa aj na aplikáciu viac ako jednej podmienky na globbovací vzor. Každý vzor je v príkaze oddelený symbolom „|“.

Príklad - 1:

Spustite nasledujúci príkaz a vyhľadajte názvy súborov, ktoré začínajú znakom „a“ a majú príponu „bash“ alebo „sh“.

$lsdo*+(.bash|.sh)

Príklad - 2:

Vytvorte bash súbor s názvom „Menu.bash“ a pridajte nasledujúci skript. Ak používateľ zadá 1 alebo S. potom sa to vytlačí Hľadanie textu . Ak používateľ zadá 2 alebo R. potom sa to vytlačí Výmena textu . Ak používateľ zadá 3 alebo D potom sa to vytlačí Odstraňuje sa text . Vytlačí sa Skúste to znova pre akýkoľvek iný vstup.

#!/bin/bash
zahodil 'Vyberte ľubovoľnú možnosť z ponuky:'
čítaťodpovedz
prípad $ odpoveď v
1 |S) zahodil 'Hľadanie textu';;
2 |R.) zahodil „Nahrádza text“;;
3 |D) zahodil „Odstraňuje sa text“;;
*) zahodil „Skúste to znova.“;;
esac

Spustite skript.

$bashmenu.bash

ZÁVER

Niektoré z najbežnejšie používaných glóbusových vzorov sú v tomto návode vysvetlené pomocou veľmi jednoduchých príkladov. Dúfam, že po precvičení vyššie uvedených príkladov vám bude koncept globbingu jasný a budete ho môcť úspešne použiť v príkazoch a skriptoch bash.

Ak chcete získať ďalšie informácie, pozrite si toto video: