Примери низова раздвојених басова

Bash Split String Examples



Морамо поделити низ података у различите сврхе у програмирању. Многи програмски језици имају уграђену функцију под називом „сплит“ за поделу било којих података о низовима на више делова. Али не постоји уграђена функција у басху за дељење низа. Обично се за раздвајање података у низу користе појединачни или вишеструки граничници. Како можете поделити низ у басх -у приказано је у овом водичу помоћу различитих примера.








Коришћење променљиве $ ИФС

Посебна променљива љуске $ ИФС се користи у басху за цепање низа на речи. $ ИФС променљива се назива Интерни сепаратор поља (ИФС) која се користи за додељивање посебног граничника за дељење низа. Границе речи су идентификоване у басх помоћу $ ИФС. Бели простор је подразумевана вредност разграничења за ову променљиву. Било која друга вредност, попут „ т“, „ н“, „-“ итд. Може се користити као граничник. Након додељивања вредности променљивој $ ИФС, вредност низа се може очитати помоћу две опције. То су '-р' и '-а'. Опција „-р“ се користи за читање обрнуте косе црте () као знак, а не за бекство, а опција „-а“ се користи за складиштење подељених речи у променљиву низа. Низ се може поделити без употребе променљиве $ ИФС у басх-у. У следећим примерима приказани су различити начини поделе стринг података (са $ ИФС или без $ ИФС).



Пример-1: Поделите низ на основу

Вредност низа је подразумевано подељена празним простором. Направите датотеку под називом „сплит1.сх“ и додајте следећи код. Овде се променљива $ тект користи за додељивање вредности низа. Променљива љуске, $ ИФС се користи за додељивање карактера који ће се користити за дељење података о низу. У овој скрипти се размак користи као сепаратор. Опција „-а“ се користи са командом за читање за складиштење подељених података у променљиву низа под именом $ страрр. „Фор“ петља се користи за читање сваког елемента низа, $ страрр.



сплит1.сх





#!/бин/басх

#Дефинишите вредност низа
текст=„Добро дошли у ЛинукХинт“

# Подесите простор као граничник
ИФС=''

#Прочитајте подељене речи у низ на основу разделника за размак
читати -дострарр<<< '$ тект'

#Пребројите све речи
Избацио 'Постоје$ {#страрр [*]}речи у тексту. '

# Одштампајте сваку вредност низа помоћу петље
захрсу '$ {страрр [@]}';
урадити
принтф '$ сати н'
Готово

Излаз:

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



$басхсплит1.сх

Следећи излаз ће се појавити након покретања скрипте.

Пример-2: Поделите низ на основу одређеног знака

Било који специфични знак може се користити као сепаратор за поделу вредности низа. Направите датотеку под називом сплит2.сх и додајте следећи код. Овде се назив књиге, име аутора и цена цене узимају додавањем зареза (,) као улазног низа. Затим се вредност низа дели и складишти у низу на основу вредности променљиве љуске, $ ИФС. Свака вредност елемената низа се штампа помоћу вредности индекса.

сплит2.сх

#!/бин/басх

#Прочитајте вредност низа
Избацио 'Унесите назив књиге, име аутора и цену одвајањем зареза. '
читатитекст

# Подесите зарез као граничник
ИФС=','

#Прочитајте подељене речи у низ заснован на граничнику зареза
читати -дострарр<<< '$ тект'

#Одштампајте раздвојене речи
Избацио 'Назив књиге:$ {страрр [0]}'
Избацио 'Име аутора:$ {страрр [1]}'
Избацио 'Цена :$ {страрр [2]}'

Излаз:

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

$басхсплит2.сх

Следећи излаз ће се појавити након покретања скрипте.

Пример-3: Поделите низ без променљиве $ ИФС

Овај пример показује како се вредност низа може поделити без употребе $ ИФС у басх -у. Направите датотеку под називом „ сплит3.сх ’ и додајте следећи код. Према скрипти, текстуална вредност са двотачком (:) мора узети као улаз за раздвајање. Овде се команда „реадарраи“ са опцијом -д користи за раздвајање података низа. Опција „-д“ се користи за дефинисање сепаратора у команди, попут $ ИФС. Затим се петља „фор“ користи за штампање елемената низа.

сплит3.сх

#!/бин/басх

#Прочитајте главни низ
Избацио 'Унесите низ са двотачком (:) да бисте га поделили'
читатимаинстр

#Поделите низ на основу граничника, ':'
реадарраи:страрр<<< '$ маинстр'
принтф ' н'

# Одштампајте сваку вредност низа помоћу петље
за (( н=0; н< $ {#страрр [*]}; н ++))
урадити
Избацио '$ {страрр [н]}'
Готово

Излаз:

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

$басхсплит3.сх

Следећи излаз ће се појавити након покретања скрипте.

Пример 4: Поделите низ вишезначним разделником

Вредност низа се дели граничником од једног знака у свим претходним примерима. У овом примеру приказано је како можете поделити низ помоћу разделника са више знакова. Направите датотеку под називом Тимес сплит4.сх и додајте следећи код. Овде се променљива $ тект користи за складиштење података о низу. Променљива $ делимитер се користи за додељивање вишезначних података који се користе као разграничење у следећим наредбама. Променљива $ миарраи се користи за складиштење свих подељених података као елемента низа. Коначно, сви подељени подаци се штампају помоћу „фор“ петље.

сплит4.сх

#!/бин/басх

#Дефинишите низ за раздвајање
текст='леарнХТМЛлеарнПХПлеарнМиСКЛлеарнЈавасцрипт'

#Дефинишите разграничење са више знакова
граничник='учити'
#Повежите граничник са главним низом
низ=$ тект$ делимитер

#Поделите текст на основу граничника
миарраи=()
док [[ $ стринг ]];урадити
миарраи+=( '$ {стринг %% '$ делимитер'*}' )
низ=$ {стринг#*'$ делимитер'}
Готово

#Одштампајте речи после поделе
завредносту $ {миарраи [@]}
урадити
Избацио '$ вредност'
Готово
принтф ' н'

Излаз:

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

$басхсплит4.сх

Следећи излаз ће се појавити након покретања скрипте.

Закључак:

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

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