Басх Глоббинг Туториал

Bash Globbing Tutorial



Басх не подржава изворне регуларне изразе као неки други стандардни програмски језици. Особина Басх љуске која се користи за усклађивање или проширење одређених типова образаца назива се глобирање. Глоббинг се углавном користи за упаривање назива датотека или тражење садржаја у датотеци. Глоббинг користи џокер знакове за креирање узорка. Најчешћи замјенски знакови који се користе за креирање шаблона глобуса описани су у наставку.

‘?’ користи се за подударање са било којим знаком. Можете користити ‘?’ више пута за подударање више знакова.







Пример-1:



Претпоставимо да желите да претражујете она текстуална имена датотека чија су имена дугачка 4 знака и чији је наставак .ткт . Можете применити шаблонирање помоћу „ ? ’Четири пута за обављање овог задатка.



Сазнајте списак свих датотека и фасцикли тренутног директоријума.





$лс-тхе

Покрените следећу команду да претражите датотеке чија су имена четири знака дуга и непозната.

$ лс -л ????. ткт



Пример 2:

Претпоставимо да желите да претражите датотеке докумената чија су имена дугачка 8 знакова, а прва 4 карактера ф, о, о и т а продужење је доц . Покрените следећу команду са шаблоном за претраживање да бисте претражили датотеке.

$лс -тхестопало ????. доц

Пример 3:

Претпоставимо да знате да је назив датотеке 'Најбољи' и проширење је дугачко 3 знака, али не знам проширење. Покрените следећу команду помоћу ‘? “За претраживање свих датотека са именом„ тест “са било којим наставком од три знака.

$лс -тхенајбоље. ???

Звездица - (*)

‘*’ користи се за подударање са нулом или више знакова. Ако имате мање информација за претраживање било које датотеке или информације, можете их користити ‘*’ у шаблону.

Пример -1:

Претпоставимо да желите да претражите све датотеке у „Пл“ продужетак. Покрените следећу команду помоћу ‘*’ да уради тај задатак.

$лс -тхе *.пл

Пример 2:

Претпоставимо да знате само почетни знак назива датотеке који је 'до' . Покрените следећу команду користећи „*“ да бисте претражили све датотеке тренутног директоријума чија имена почињу 'до' .

$лс -тхедо*.*

Пример 3:

Можете применити „*“ у басх скрипти за различите сврхе без претраживања датотека. Направите басх датотеку под називом „Цхецк.сх“ са следећим писмом. Овде, када корисник откуца „ и 'или' И 'или' иес 'или' иес ' онда „Потврђено“ штампаће се и када ће тип откуцати „Н“ или „Н“ или „не“ или „не“ онда 'Није потврђена' штампаће.

#!/бин/басх
Избацио 'Да ли желите да потврдите?'
читатиодговор
случају $ одговор у
[Ии]* ) Избацио 'потврђено.';;
[Нос]* ) Избацио 'Није потврђена.';;
*) Избацио 'Покушајте поново.';;
есац

Покрените скрипту.

$басхцхецк.сх

Четвртаста наруквица - ([])

‘[]’ се користи за усклађивање карактера из опсега. Неке од најчешће коришћених декларација опсега наведене су у наставку.

Сва велика слова су распона дефинисана као, [: велика:] или [А-З].

Сва мала слова су дефинисана опсегом као, [: мала:] или [а-з].

Све нумеричке цифре су дефинисане опсегом као, [: цифра:] или [0-9].

Сва велика и мала слова су дефинисана опсегом као, [: алпха:] или [а-зА-з].

Сва велика слова, мала слова и цифре дефинисани су опсегом као, [: алнум:] или [а-зА-З0-9]

Пример -1:

Покрените следећу команду да претражите све датотеке и фасцикле чије име садржи п или Шта или р или с .

$лс -тхе [п-с]*

Пример 2:

Покрените следећу команду да претражите све датотеке и фасцикле чије име почиње било којом цифром од 1 до 5.

$лс -тхе [1-5]*

Недостаје му - (^)

Можете користити ‘^’ са углатим заградама за прецизније дефинисање шаблона глобуса. ‘^’ може се користити унутар или изван углате заграде. „^“ Се користи изван угласте заграде за претраживање садржаја датотеке који почиње датим распоном знакова. ‘^’ Се користи унутар углате заграде за приказ целокупног садржаја датотеке означавањем редова који почињу датим опсегом знакова. За претраживање одређеног садржаја из датотеке можете користити различите врсте шаблона глобирања. 'дршка' команда се користи за претраживање садржаја у басх -у. Претпоставимо да имате текстуалну датотеку под називом „Лист.ткт“ са следећим садржајем. Тестирајте следеће примере за ту датотеку.

Аппле
4000
Банана
700
Оранге
850
Крушка
9000
јацкдруит

Пример - 1:

Покрените следећу команду да бисте претражили те редове лист.ткт датотека која почиње са П или К или Р. .

$ греп '^[П-Р]' лист.ткт

Пример - 2:

Покрените следећу команду да бисте означили те редове лист.ткт датотека која почиње са А или Б или Ц. .

$ греп '[^А-Ц]' лист.ткт

Узвични знак - (!)

Можете користити '!' унутар обрасца распона. Ради исто као и употреба симбола ‘^’ изван обрасца опсега. Неки примери коришћења '!' знак су дати испод.

Пример - 1:

Покрените следећу команду да бисте приказали те редове лист.ткт датотека која почиње са „П“ или К или Р. .

$ греп [! П-Р] лист.ткт

Пример - 2:

Покрените следећу команду да бисте приказали те редове лист.ткт датотека која почиње било којом цифром из 4 до 8 .

$ греп [! 4-8] лист.ткт

Знак долара - ($)

„$“ користи се за дефинисање завршног знака. Ако знате да желите да тражите информације на основу последњег знака, можете их користити „$“ у шаблону.

Пример - 1:

Покрените следећу команду да бисте претражили те редове лист.ткт датотека која се завршава са 'до' .

$ греп а $ лист.ткт

Пример - 2:

Покрените следећу команду да бисте претражили те редове лист.ткт датотеку која завршава бројем педесет .

$ греп 50 $ лист.ткт

Увијена заграда - ({})

„{}“ могу се користити за подударање имена датотека са више од једног шаблона за глобирање. Сваки узорак је одвојен са „,“ у увијеној загради без размака. Неки примери су дати испод.

Пример - 1:

Покрените следећу команду да бисте претражили оне датотеке чија су имена дугачка 5 знакова, а наставак је 'Ш' или су последња два знака датотека 'Ст' а продужетак је 'Ткт' .

$ лс -л {?????. сх,*ст.ткт}

Пример - 2:

Покрените следећу команду да бисте избрисали све датотеке чије су екстензије „Доц“ или „доцк“ .

$рм {*.доц,*.доцк}

Цев– (|)

Знак ‘|’ се такође користи за примену више од једног услова на шаблонизирању. Сваки узорак је у команди одвојен симболом „|“.

Пример - 1:

Покрените следећу команду да бисте претражили имена датотека која почињу знаком „а“ и имају наставак „басх“ или „сх“.

$лсдо*+(.басх|.сх)

Пример - 2:

Направите басх датотеку под називом „Мену.басх“ и додајте следеће писмо. Ако корисник откуца 1 или С. онда ће се штампати Тражење текста . Ако корисник откуца 2 или Р. онда ће се штампати Замена текста . Ако корисник откуца 3 или Д. онда ће се штампати Брисање текста . Штампаће се Покушајте поново за било који други улаз.

#!/бин/басх
Избацио „Изаберите било коју опцију из менија:“
читатиодговор
случају $ одговор у
1 |С) Избацио „Тражење текста“;;
2 |Р) Избацио „Замена текста“;;
3 |Д.) Избацио „Брисање текста“;;
*) Избацио 'Покушајте поново.';;
есац

Покрените скрипту.

$басхмени.баш

ЗАКЉУЧАК

Неки од најчешће коришћених узорака глобовања објашњени су у овом водичу помоћу врло једноставних примера. Надам се да ће вам након увежбавања горњих примера концепт глобирања бити јасан и да ћете га моћи успешно применити у басх командама и скриптама.

За више информација погледајте овај видео: