Коришћење променљиве $ ИФС
Посебна променљива љуске $ ИФС се користи у басху за цепање низа на речи. $ ИФС променљива се назива Интерни сепаратор поља (ИФС) која се користи за додељивање посебног граничника за дељење низа. Границе речи су идентификоване у басх помоћу $ ИФС. Бели простор је подразумевана вредност разграничења за ову променљиву. Било која друга вредност, попут „ т“, „ н“, „-“ итд. Може се користити као граничник. Након додељивања вредности променљивој $ ИФС, вредност низа се може очитати помоћу две опције. То су '-р' и '-а'. Опција „-р“ се користи за читање обрнуте косе црте () као знак, а не за бекство, а опција „-а“ се користи за складиштење подељених речи у променљиву низа. Низ се може поделити без употребе променљиве $ ИФС у басх-у. У следећим примерима приказани су различити начини поделе стринг података (са $ ИФС или без $ ИФС).
Пример-1: Поделите низ на основу
Вредност низа је подразумевано подељена празним простором. Направите датотеку под називом „сплит1.сх“ и додајте следећи код. Овде се променљива $ тект користи за додељивање вредности низа. Променљива љуске, $ ИФС се користи за додељивање карактера који ће се користити за дељење података о низу. У овој скрипти се размак користи као сепаратор. Опција „-а“ се користи са командом за читање за складиштење подељених података у променљиву низа под именом $ страрр. „Фор“ петља се користи за читање сваког елемента низа, $ страрр.
сплит1.сх
#!/бин/басх
#Дефинишите вредност низа
текст=„Добро дошли у ЛинукХинт“
# Подесите простор као граничник
ИФС=''
#Прочитајте подељене речи у низ на основу разделника за размак
читати -дострарр<<< '$ тект'
#Пребројите све речи
Избацио 'Постоје$ {#страрр [*]}речи у тексту. '
# Одштампајте сваку вредност низа помоћу петље
захрсу '$ {страрр [@]}';
урадити
принтф '$ сати н'
Готово
Излаз:
Покрените скрипту.
$басхсплит1.сх
Следећи излаз ће се појавити након покретања скрипте.
Пример-2: Поделите низ на основу одређеног знака
Било који специфични знак може се користити као сепаратор за поделу вредности низа. Направите датотеку под називом сплит2.сх и додајте следећи код. Овде се назив књиге, име аутора и цена цене узимају додавањем зареза (,) као улазног низа. Затим се вредност низа дели и складишти у низу на основу вредности променљиве љуске, $ ИФС. Свака вредност елемената низа се штампа помоћу вредности индекса.
сплит2.сх
#!/бин/басх#Прочитајте вредност низа
Избацио 'Унесите назив књиге, име аутора и цену одвајањем зареза. '
читатитекст
# Подесите зарез као граничник
ИФС=','
#Прочитајте подељене речи у низ заснован на граничнику зареза
читати -дострарр<<< '$ тект'
#Одштампајте раздвојене речи
Избацио 'Назив књиге:$ {страрр [0]}'
Избацио 'Име аутора:$ {страрр [1]}'
Избацио 'Цена :$ {страрр [2]}'
Излаз:
Покрените скрипту.
$басхсплит2.схСледећи излаз ће се појавити након покретања скрипте.
Пример-3: Поделите низ без променљиве $ ИФС
Овај пример показује како се вредност низа може поделити без употребе $ ИФС у басх -у. Направите датотеку под називом „ сплит3.сх ’ и додајте следећи код. Према скрипти, текстуална вредност са двотачком (:) мора узети као улаз за раздвајање. Овде се команда „реадарраи“ са опцијом -д користи за раздвајање података низа. Опција „-д“ се користи за дефинисање сепаратора у команди, попут $ ИФС. Затим се петља „фор“ користи за штампање елемената низа.
сплит3.сх
#!/бин/басх#Прочитајте главни низ
Избацио 'Унесите низ са двотачком (:) да бисте га поделили'
читатимаинстр
#Поделите низ на основу граничника, ':'
реадарраи-д:-тстрарр<<< '$ маинстр'
принтф ' н'
# Одштампајте сваку вредност низа помоћу петље
за (( н=0; н< $ {#страрр [*]}; н ++))
урадити
Избацио '$ {страрр [н]}'
Готово
Излаз:
Покрените скрипту.
$басхсплит3.схСледећи излаз ће се појавити након покретања скрипте.
Пример 4: Поделите низ вишезначним разделником
Вредност низа се дели граничником од једног знака у свим претходним примерима. У овом примеру приказано је како можете поделити низ помоћу разделника са више знакова. Направите датотеку под називом Тимес сплит4.сх и додајте следећи код. Овде се променљива $ тект користи за складиштење података о низу. Променљива $ делимитер се користи за додељивање вишезначних података који се користе као разграничење у следећим наредбама. Променљива $ миарраи се користи за складиштење свих подељених података као елемента низа. Коначно, сви подељени подаци се штампају помоћу „фор“ петље.
сплит4.сх
#!/бин/басх#Дефинишите низ за раздвајање
текст='леарнХТМЛлеарнПХПлеарнМиСКЛлеарнЈавасцрипт'
#Дефинишите разграничење са више знакова
граничник='учити'
#Повежите граничник са главним низом
низ=$ тект$ делимитер
#Поделите текст на основу граничника
миарраи=()
док [[ $ стринг ]];урадити
миарраи+=( '$ {стринг %% '$ делимитер'*}' )
низ=$ {стринг#*'$ делимитер'}
Готово
#Одштампајте речи после поделе
завредносту $ {миарраи [@]}
урадити
Избацио -н '$ вредност'
Готово
принтф ' н'
Излаз:
Покрените скрипту.
$басхсплит4.схСледећи излаз ће се појавити након покретања скрипте.
Закључак:
Низ података треба поделити за различите сврхе програмирања. У овом водичу приказани су различити начини поделе стринг података у басх -у. Надам се да ће читаоци након увежбавања горенаведених примера моћи да поделе било који низ података на основу њихових захтева.
За више информација погледајте Видео !