Bash Globbing pamoka

Bash Globbing Tutorial



„Bash“ nepalaiko įprastų išraiškų, kaip kai kurios kitos standartinės programavimo kalbos. „Bash“ apvalkalo funkcija, naudojama tam tikrų tipų šablonams suderinti ar išplėsti, vadinama „globing“. „Globbing“ dažniausiai naudojamas suderinti failų pavadinimus arba ieškoti failo turinio. „Globbing“ šablonui sukurti naudoja pakaitos simbolius. Žemiau aprašyti dažniausiai naudojami pakaitos simboliai, naudojami gaubiant šablonus.

'?' naudojamas bet kuriam simboliui suderinti. Tu gali naudoti '?' kelis kartus, kad atitiktų kelis simbolius.







1 pavyzdys:



Tarkime, norite ieškoti tų teksto failų pavadinimų, kurių pavadinimai yra 4 simboliai, o plėtinys - .txt . Galite pritaikyti gaubimo modelį naudodami „ ? “Keturis kartus atlikti šią užduotį.



Sužinokite visų dabartinio katalogo failų ir aplankų sąrašą.





$ls-jie

Vykdykite šią komandą ieškokite tų failų, kurių pavadinimai yra keturių simbolių ir nežinomi.

$ ls -l ???? txt



2 pavyzdys:

Tarkime, norite ieškoti tų dokumentų failų, kurių pavadinimai yra 8 simboliai, pirmieji 4 simboliai f, o, o ir t ir pratęsimas yra doc . Norėdami ieškoti failų, paleiskite šią komandą su gaubiančiu šablonu.

$ls -jiepėda ???? doc

3 pavyzdys:

Tarkime, jūs žinote failo pavadinimą 'Geriausias' ir plėtinys yra 3 simbolių ilgio, tačiau plėtinio nežinau. Vykdykite šią komandą naudodami '? “, Kad galėtumėte ieškoti visuose failuose, kurių pavadinimas yra„ test “, bet kurių trijų simbolių plėtinys.

$ls -jiegeriausia. ???

Žvaigždutė - (*)

„*“ naudojamas nulio ar daugiau simbolių atitikimui. Jei turite mažiau informacijos bet kokiam failui ar informacijai ieškoti, galite naudoti „*“ gaubiančiu modeliu.

-1 pavyzdys:

Tarkime, norite ieškoti visuose failuose „Pl“ pratęsimas. Vykdykite šią komandą naudodami „*“ atlikti tą užduotį.

$ls -jie *.pl

2 pavyzdys:

Tarkime, jūs žinote tik pradinį failo pavadinimo simbolį 'iki' . Vykdykite šią komandą naudodami „*“, kad ieškotumėte visų dabartinio katalogo failų, kurių pavadinimai pradėti 'iki' .

$ls -jieį*.*

3 pavyzdys:

„Bash“ scenarijuje galite taikyti „*“ įvairiems tikslams, neieškodami failų. Sukurkite bash failą pavadinimu 'Check.sh' su šiuo scenarijumi. Čia, kai vartotojas įves „ y “arba„ Y “arba„ taip “arba„ Taip “ tada 'Patvirtintas' bus spausdinama ir kada tipas įves „N“ arba „N“ arba „ne“ arba „ne“ tada 'Nepatvirtintas' atspausdins.

#!/bin/bash
išmetė - Ar norite patvirtinti?
skaitytiatsakyk
atvejis $ atsakymas į
[Yy]* ) išmetė 'patvirtino'.;;
[Nr]* ) išmetė 'Nepatvirtintas.';;
*) išmetė 'Bandyk iš naujo.';;
esac

Paleiskite scenarijų.

$muštipatikrinkite.sh

Kvadratinis skliaustas - ([])

„[]“ naudojamas simboliui iš diapazono suderinti. Toliau pateikiamos kai kurios dažniausiai naudojamos diapazono deklaracijos.

Visos didžiosios raidės yra apibrėžtos pagal diapazoną, [: viršutinė:] arba [A-Z].

Visos mažosios raidės yra apibrėžtos pagal diapazoną, [: mažesnis:] arba [a – z].

Visi skaitiniai skaitmenys yra apibrėžti pagal diapazoną, [: skaitmuo:] arba [0-9].

Visos didžiosios ir mažosios abėcėlės yra apibrėžtos pagal diapazoną, [: alfa:] arba [a-zA-z].

Visos didžiosios, mažosios abėcėlės ir skaitmenys yra apibrėžtos pagal diapazoną, [: alnum:] arba [a-zA-Z0-9]

-1 pavyzdys:

Norėdami ieškoti visų failų ir aplankų, kurių pavadinime yra, paleiskite šią komandą p arba arba r arba s .

$ls -jie [p]*

2 pavyzdys:

Vykdykite šią komandą, jei norite ieškoti visuose failuose ir aplankuose, kurių pavadinimas prasideda bet kokiu skaitmeniu nuo 1 iki 5.

$ls -jie [1-5]*

Jam trūksta - (^)

Tu gali naudoti „^“ su kvadratiniu skliaustu, kad būtų galima tiksliau apibrėžti gaubimo modelį. „^“ gali būti naudojamas kvadratinių skliaustų viduje arba išorėje. „^“ Naudojamas ne laužtiniame skliauste, kad būtų galima ieškoti to failo turinio, kuris prasideda tam tikru simbolių diapazonu. „^“ Naudojamas laužtiniame skliauste, kad būtų parodytas visas failo turinys, paryškinant eilutes, prasidedančias tam tikru simbolių diapazonu. Norėdami ieškoti tam tikro turinio iš failo, galite naudoti įvairių tipų gaubimo modelius. 'griebtis' komanda naudojama turinio paieškai „bash“. Tarkime, turite teksto failą pavadinimu „List.txt“ su tokiu turiniu. Išbandykite šiuos to failo pavyzdžius.

„Apple“
4000
Bananas
700
Oranžinė
850
Kriaušė
9000
jackdruit

Pavyzdys - 1:

Norėdami ieškoti tų eilučių, paleiskite šią komandą list.txt failas, kuris prasideda P arba Q arba R. .

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

2 pavyzdys:

Vykdykite šią komandą, kad paryškintumėte šias eilutes list.txt failas, kuris prasideda A arba B arba C. .

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

Šaukiamasis ženklas - (!)

Tu gali naudoti '!' diapazono modelio viduje. Tai veikia taip pat, kaip ir simbolio „^“ naudojimas už diapazono ribų. Keletas naudojimo pavyzdžių '!' ženklas pateikiamas žemiau.

Pavyzdys - 1:

Norėdami parodyti šias eilutes, paleiskite šią komandą list.txt failas, kuris prasideda „P“ arba Q arba R .

$ grep [! P-R] list.txt

2 pavyzdys:

Norėdami parodyti šias eilutes, paleiskite šią komandą list.txt failas, prasidedantis bet kokiu skaitmeniu iš 4 iki 8 .

$ grep [! 4-8] list.txt

Dolerio ženklas - ($)

„$“ naudojamas baigiamam simboliui apibrėžti. Jei žinote, kad norite ieškoti informacijos pagal paskutinį simbolį, galite naudoti „$“ gaubiančiu modeliu.

Pavyzdys - 1:

Norėdami ieškoti tų eilučių, paleiskite šią komandą list.txt failas, kuris baigiasi 'iki' .

$ grep a $ list.txt

2 pavyzdys:

Norėdami ieškoti tų eilučių, paleiskite šią komandą list.txt failą, kuris baigiasi skaičiumi penkiasdešimt .

$ grep 50 $ list.txt

Garbanotas skliaustas - ({})

„{}“ gali būti naudojamas suderinti failų pavadinimus su daugiau nei vienu gaubiančiu šablonu. Kiekvienas raštas yra atskirtas „,“ garbanotame skliauste be tarpų. Kai kurie pavyzdžiai pateikti žemiau.

Pavyzdys - 1:

Vykdykite šią komandą, jei norite ieškoti tų failų, kurių pavadinimai yra 5 simboliai, o plėtinys yra 'Sh' arba paskutiniai du failų simboliai yra 'St' ir pratęsimas yra „Txt“ .

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

2 pavyzdys:

Norėdami ištrinti visus failus, kurių plėtiniai yra, paleiskite šią komandą „Doc“ arba „docx“ .

$rm {*.doc,*.docx}

Vamzdis - (|)

Ženklas „|“ taip pat naudojamas taikant daugiau nei vieną sąlygą gaubiamam modeliui. Kiekvienas modelis komandoje yra atskirtas simboliu „|“.

Pavyzdys - 1:

Vykdykite šią komandą, kad ieškotumėte tų failų pavadinimų, kurie prasideda simboliu „a“ ir kurių plėtinys yra „bash“ arba „sh“.

$lsį*+(.bash|.sh)

2 pavyzdys:

Sukurkite bash failą pavadinimu „Menu.bash“ ir pridėkite šį scenarijų. Jei vartotojo tipas 1 arba S. tada spausdins Ieškomas tekstas . Jei vartotojo tipas 2 arba R. tada spausdins Teksto pakeitimas . Jei vartotojo tipas 3 arba D. tada spausdins Teksto ištrynimas . Jis bus atspausdintas Bandyk iš naujo bet kokiam kitam įėjimui.

#!/bin/bash
išmetė „Meniu pasirinkite bet kurią parinktį:“
skaitytiatsakyk
atvejis $ atsakymas į
1 |S) išmetė „Ieškomas tekstas“;;
2 |R) išmetė „Teksto pakeitimas“;;
3 |D) išmetė „Teksto ištrynimas“;;
*) išmetė 'Bandyk iš naujo.';;
esac

Paleiskite scenarijų.

$muštimeniu.bash

IŠVADA

Kai kurie dažniausiai naudojami gaubimo modeliai paaiškinami šiame vadove naudojant labai paprastus pavyzdžius. Tikiuosi, kad po to, kai praktikuosite aukščiau pateiktus pavyzdžius, gaubimo sąvoka jums bus aiški ir galėsite sėkmingai ją taikyti „bash“ komandose ir scenarijuose.

Norėdami gauti daugiau informacijos, patikrinkite šį vaizdo įrašą: