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