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.shSljedeć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.shSljedeć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.shSljedeć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 !