Primjeri nizova podijeljenih basova

Bash Split String Examples

Moramo podijeliti nizove podataka u različite svrhe u programiranju. Mnogi programski jezici imaju ugrađenu funkciju pod nazivom 'split' za podjelu bilo kojih podataka o nizovima na više dijelova. Ali ne postoji ugrađena funkcija u bashu za podjelu niza. Obično se za podjelu podataka o nizu koriste pojedinačni ili višestruki graničnici. Kako možete podijeliti niz u bash prikazano je u ovom vodiču pomoću različitih primjera.




Korištenje varijable $ IFS

Posebna varijabla ljuske $ IFS koristi se u bashu za razdvajanje niza u riječi. Varijabla $ IFS naziva se Interni separator polja (IFS) koji se koristi za dodjeljivanje određenog graničnika za podjelu niza. Granice riječi identificiraju u bash $ IFS. Bijeli prostor zadana je vrijednost razdjelnika za ovu varijablu. Bilo koja druga vrijednost poput ' t', ' n', '-' itd. Može se koristiti kao graničnik. Nakon dodjeljivanja vrijednosti varijabli $ IFS, vrijednost niza može se očitati s dvije mogućnosti. To su '-r' i '-a'. Opcija, '-r' koristi se za čitanje obrnute kose crte () kao znak, a ne znak za izbjegavanje, a opcija '-a' se koristi za spremanje podijeljenih riječi u varijablu niza. Niz se može podijeliti bez upotrebe $ IFS varijable u bash-u. U sljedećim primjerima prikazani su različiti načini podjele string podataka (s $ IFS ili bez $ IFS).



Primjer-1: Podijelite niz na temelju

Vrijednost niza zadano je podijeljena praznim prostorom. Napravite datoteku pod nazivom 'split1.sh' i dodajte sljedeći kod. Ovdje se $ text varijabla koristi za dodjeljivanje vrijednosti niza. Varijabla ljuske, $ IFS koristi se za dodjeljivanje znaka koji će se koristiti za podjelu podataka niza. Razmak se u ovoj skripti koristi kao separator. Opcija ‘-a’ koristi se s naredbom čitanja za spremanje podijeljenih podataka u varijablu niza pod nazivom $ strarr. Petlja ‘for’ koristi se za čitanje svakog elementa niza, $ strarr.



split1.sh

#!/bin/bash

#Definirajte vrijednost niza
tekst='Dobro došli u LinuxHint'

# Postavite razmak kao graničnik
IFS=''

#Pročitajte podijeljene riječi u niz na temelju razdjelnika razmaka
čitati -dostrarr<<< '$ text'

#Prebroji ukupan broj riječi
izbaciti 'Tamo su$ {#strarr [*]}riječi u tekstu. '

# Ispišite svaku vrijednost niza pomoću petlje
zasatiu '$ {strarr [@]}';
čini
printf '$ sati n'
učinjeno

Izlaz:

Pokrenite skriptu.



$bashsplit1.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Primjer-2: Podijelite niz na temelju određenog znaka

Bilo koji specifični znak može se koristiti kao separator za podjelu vrijednosti niza. Napravite datoteku pod nazivom split2.sh i dodajte sljedeći kôd. Ovdje se naziv knjige, ime autora i vrijednost cijene uzimaju dodavanjem zareza (,) kao ulaznog niza. Zatim se vrijednost niza dijeli i pohranjuje u niz na temelju vrijednosti varijable ljuske, $ IFS. Svaka vrijednost elemenata niza ispisuje se prema vrijednosti indeksa.

split2.sh

#!/bin/bash

#Pročitajte vrijednost niza
izbaciti 'Unesite naziv knjige, ime autora i cijenu odvajanjem zareza. '
čitatitekst

# Postavite zarez kao graničnik
IFS=','

#Pročitajte podijeljene riječi u niz na temelju graničnika zareza
čitati -dostrarr<<< '$ text'

#Ispišite podijeljene riječi
izbaciti 'Naziv knjige:$ {strarr [0]}'
izbaciti 'Ime autora:$ {strarr [1]}'
izbaciti 'Cijena:$ {strarr [2]}'

Izlaz:

Pokrenite skriptu.

$bashsplit2.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Primjer-3: Podijelite niz bez varijable $ IFS

Ovaj primjer pokazuje kako se vrijednost niza može podijeliti bez upotrebe $ IFS u bash -u. Napravite datoteku pod nazivom ' split3.sh ’ i dodajte sljedeći kôd. Prema skripti, tekstualna vrijednost s dvotočkom (:) mora uzeti kao ulaz za cijepanje. Ovdje se naredba ‘readarray’ s opcijom -d koristi za podjelu podataka niza. Opcija ‘-d’ koristi se za definiranje znaka razdvajanja u naredbi poput $ IFS. Zatim se petlja ‘for’ koristi za ispis elemenata niza.

split3.sh

#!/bin/bash

#Pročitajte glavni niz
izbaciti 'Unesite niz s dvotočkom (:) za podjelu')
čitatimainstr

#Podijelite niz na temelju razdjelnika, ':'
readarray-d:-tstrarr<<< '$ mainstr'
printf ' n'

# Ispišite svaku vrijednost niza pomoću petlje
za (( n=0; n< $ {#strarr [*]}; n ++))
čini
izbaciti '$ {strarr [n]}'
učinjeno

Izlaz:

Pokrenite skriptu.

$bashsplit3.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Primjer-4: Podijelite niz razdjelnikom s više znakova

Vrijednost niza podijeljena je graničnikom od jednog znaka u svim prethodnim primjerima. U ovom primjeru prikazano je kako možete podijeliti niz pomoću razdjelnika s više znakova. Napravite datoteku pod nazivom Times split4.sh i dodajte sljedeći kôd. Ovdje se $ text varijabla koristi za spremanje podataka niza. Varijabla $ delimiter koristi se za dodjeljivanje podataka s više znakova koji se koriste kao razdjelnik u sljedećim izrazima. Varijabla $ myarray koristi se za spremanje svih podijeljenih podataka kao elementa niza. Konačno, svi podijeljeni podaci ispisuju se pomoću petlje 'for'.

split4.sh

#!/bin/bash

#Definirajte niz za podjelu
tekst='learnHTMLlearnPHPlearnMySQLlearnJavascript'

#Definirajte višeznačni razdjelnik
razdjelnik='naučiti'
#Spojite graničnik s glavnim nizom
niz=$ text$ razdjelnik

#Podijelite tekst na temelju graničnika
myarray=()
dok [[ $ string ]];čini
mijarija+=( '$ {string %% '$ razdjelnik'*}' )
niz=$ {string#*'$ razdjelnik'}
učinjeno

#Ispišite riječi nakon podjele
zavrijednostu $ {myarray [@]}
čini
izbaciti -n '$ vrijednost'
učinjeno
printf ' n'

Izlaz:

Pokrenite skriptu.

$bashsplit4.sh

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Zaključak:

Podaci niza moraju se podijeliti u različite svrhe programiranja. U ovom vodiču prikazani su različiti načini razdvajanja podataka niza u bashu. Nadam se da će čitatelji nakon vježbanja gore navedenih primjera moći podijeliti sve nizove podataka na temelju svojih zahtjeva.

Za više informacija pogledajte video !