Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: bash script met array  (gelezen 2514 keer)

Offline elifafd

  • Lid
bash script met array
« Gepost op: 2010/01/30, 21:14:17 »
Hallo,

Ben een newbie hier.

Ben bezig met een scriptje om een xml file uit te lezen.

XML file bestaat uit x aantal variabelen die in de xml file meerdere keren voorkomen.

Nu heb ik diverse variabelen die uit 1 tekst bestaan maar ook variabelen die uit meerdere woorden bestaan bijvoorbeeld "Oude Gracht 12"

Wat heb ik tot nu toe

ik lees de xml file uit aan de hand van de variabele

adres=`awk '/<afl_var_adres>/ {stp=index($0,">")+1; \
newstr=substr($0,stp); \
etp=index(newstr,"<")-1; \
print substr(newstr,0,etp); \
}' $xmlfile`

ik plaats deze vervolgens in een array

L_ARRAY=( `echo ${adres}` )

Nu dacht ik dat ik dmv onderstaand commando de volledige tekst regel te krijgen echter..... ik krijg alleen het 2e woord

echo ${K_ARRAY[2]}

Is er een mogelijkheid om toch die volledige regel (bijvoorbeeld "Oude Gracht 12") in 1 zo'n Array locatie te krijgen

Dus:

echo ${K_ARRAY[2]}

geeft dan: Oude Gracht 12

Ik hoor graag jullie suggesties.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: bash script met array
« Reactie #1 Gepost op: 2010/01/31, 14:38:24 »
Wat doet echo ${K_ARRAY[1]} ?
Of wat doet echo ${K_ARRAY} ?
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline elifafd

  • Lid
Re: bash script met array
« Reactie #2 Gepost op: 2010/01/31, 23:03:31 »
Problem is opgelost

op een iets andere manier

while IFS='<>' read _ starttag value endtag; do
    case "$starttag" in
        afl_var_locatie) Locatie+=("$value") ;;
        afl_var_adres)   Adres1+=("$value");;
    esac
done < $xmlfile