Slik leser du en Pipe Separert linje i en Bash Array
Bruke Bash scripting, kan du automatisere mange oppgaver som involverer arbeider med filer, programmer og datautveksling uten å ty til et komplett programmeringsspråk. En av dens egenskaper er matrisen, som brukes for å manipulere datasettene. Du kan bruke Input Feltet Separator variabel til å lese et rør separert linje i en Bash array.
Bruksanvisning
1 Skriv inn følgende kode i et nytt bash skript for å redde inntastingsfeltet Separator. IFS styres av IFS variabel. Endre denne verdien endrer hvordan bash deler innspill linjer inn argumenter. Fordi du kommer til å endre denne verdien, lagre den gamle verdien.
! / Bin / bash
oldifs = $ IFS
2 Legg til følgende linje i skriptet til å endre IFS til røret karakter.
IFS = "|"
3 Type "lese -a myArray" inn skriptfilen for å lese dine innspill i en liste fra konsollen. Når du kjører skriptet, vil den godta konsollen inngang. Du kan også bruke fil omdirigering til å lese fra en fil ved å legge til "lese -a myArray <input.txt" til skriptet, der "input.txt" er navnet på inndatafilen. Hvis du allerede har data i en variabel, kan du bare legge til "myArray = ($ yourvariable)" i stedet.
4 Legg til følgende linje for å gjenopprette IFS slik at fremtidige kommandoer oppfører seg som forventet.
IFS = $ oldifs
5 Skriv inn følgende fragment inn i manuset for å sjekke resultatet. Det vil bli skrevet ut ett element i matrisen per linje.
for jeg i $ (sekvens 0 $ (($ {# myArray [*]} - 1)))
gjøre
echo "${myarray[$i]}"
ferdig