Forutsetninger
Forsikre deg om at du har det Linux-baserte systemet installert og konfigurert. Vi skal jobbe med Ubuntu 20.04 Linux-system. Logg inn fra brukeren av Ubuntu-kontoen din for å begynne å jobbe med IFS. Det vil være bedre hvis du logger på fra rotbrukerkontoen din. Etter å ha logget på, start kommandolinjeterminalen i systemet ditt fra Aktivitetsområdet.
Eksempel 01: IFS Del en streng ved å bruke mellomrom som verdi
For vårt første eksempel vil vi forstå konseptet med å dele en streng i bash mens vi bruker mellomrom som en avgrensningsverdi ved hjelp av IFS-variabelen. Først må vi lage en bash-fil i systemet vårt. Vi kan opprette nye filer i Linux-systemet vårt ved å bruke kommandoen 'touch'. Som vist nedenfor har vi opprettet en bash-fil 'file1.sh 'ved hjelp av' touch 'instruksjonen:
$ berøringsfil 1.sh
Åpne hjemmekatalogen til Linux-systemet ditt ved hjelp av mappeikonet som vises i venstre hjørne av Ubuntu 20.04 desktop. Du finner den nyopprettede bash-filen “file1.sh ”i den. Åpne filen “file1.sh ”og skriv inn skriptet nedenfor. Først har vi definert en streng som heter "str" med noe strengverdi i den. Deretter definerer vi en avgrensningsvariabel IFS som en variabel som har mellomrom som sin verdi. Etter det brukte vi leseuttalelsen til å lagre og lese delte data i en matrise "strarr" ved hjelp av "-a" -flagget. Et "ekko" -uttrykk brukes til å skrive ut en strenglinje sammen med antall totale ord i en matrise ved å bruke "$ # strarr [*]". "For" -sløyfen brukes til å skrive ut verdiene til en matrise i delt form ved hjelp av variabelen "var". Omvendt skråstrek "\ n" hadde blitt brukt innenfor utskriftslinjen sammen med variabelen "var" for å gi en delt pause på en linje etter hver verdi i matrisen. Lagre skriptet ved hjelp av "Ctrl + S" -tasten og lukk filen for å fortsette videre.
Kom tilbake til terminalsiden. Nå vil vi sjekke utgangen av ovennevnte kode. For dette vil vi bruke kommandoen 'bash' sammen med navnet på filen "file1.sh ”for å utføre det som er vist nedenfor. Først viste den linjen nevnt i "ekko" -uttalelsen sammen med antall ord i en matrise. Etter det viste den alle verdiene i matrisen ved hjelp av "for" -sløyfen delt av IFS.
$ bash-fil 1.sh
Eksempel 02: IFS Del en streng ved å bruke tegn som verdi
I det ovennevnte eksemplet har du sett hvordan du kan dele strengvariabler i deler mens du bruker mellomrom som avgrenser for IFS. Nå vil vi bruke et tegn til å dele en streng ved hjelp av en IFS-skilletegn. Åpne kommandoterminalen din og opprett en ny bash-fil “file2.sh ”i hjemmekatalogen til Linux-systemet ved å bruke kommandoen“ touch ”som følger:
$ touch file2.sh
Åpne hjemmekatalogen til Linux-systemet ditt. Du finner den nylig opprettede filen i den. Åpne den nyopprettede filen og skriv baskoden nedenfor. På linje 3 har vi startet et "ekko" -uttalelse for å skrive ut en linje. Den neste linjen leser inngangen som er gitt av en bruker i en terminal ved hjelp av "lese" nøkkelordet. Deretter definerte vi "IFS" avgrenseren og satte komma "," som karakterverdien. En annen "lese" -uttalelse er spesifisert for å lese og lagre kommaverdelingsverdiene til en streng som blir lagt inn av en bruker til en array "strarr". Til slutt har vi startet tre ekkosetninger for å skrive ut de kommaseparerte delte verdiene som variabler som vist på bildet. Lagre og lukk denne filen.
Nå må vi utføre denne lagrede filen. Utfør den nedenfor viste bash-kommandoen etterfulgt av navnet på en fil i en terminal for å gjøre det. Du må legge til noen strengverdier som må inneholde komma "," i verdiene, og trykke Enter-knappen. Nå er dataene dine lagret i en serie "strarr". De tre siste linjene viser utdataene fra "ekko" -uttalelsene. Du kan se, hver tekst før og etter kommaet har blitt brukt som en egen verdi.
$ bash fil2.sh
Eksempel 03: IFS delt streng
Vi har gjort begge tidligere eksempler i en bash-fil. Vi vil nå ha en illustrasjon av bruk av “IFS” uten å lage en bash-fil. Åpne kommandoskallet for å gjøre det. Først må vi lage en streng “var” med en strengverdi i. Denne strengen inneholder komma etter hvert ord.
$ var = ”Hei, jeg er 25 år gammel.”Initier deretter "IFS" -variabelen med tegn komma som skilletegn.
$ IFS =,Etter det brukte vi "for" -sløyfen for å søke i hvert ord fra variabelen "var" atskilt med et IFS-skilletegn og skrive det ut med "ekko-setningen".
$ for i i $ var> gjør
> ekko [$ i]
> Ferdig
Du får utdataene nedenfor. Det vil vise hvert ord i en strengvariabel "var" på en ny linje på grunn av skilletegn "," brukt som delt tegn.
Konklusjon:
I denne guiden har du lært en rekke metoder for å dele inngangsverdiene i en bash, e.g., med plass eller med et tegn. Vi håper at illustrasjonene nevnt i denne opplæringsveiledningen vil hjelpe deg med å bryte hver streng ved hjelp av IFS-avgrenseren.