Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

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

Auteur Topic: [Opgelost] String to array in bash  (gelezen 1271 keer)

[Opgelost] String to array in bash
« Gepost op: 2013/01/22, 23:16:58 »
L.S.

Het betreft hier een bash-script.  Ik heb vele voorbeelden gedownload om te bereiken dat ik alle letters van een string kan overzetten naar een array. Het is mij niet goed gelukt. Daarom deze vraag: is het mogelijk in bash een string te converteren naar een array, waarbij alle letters van de string een eigen element krijgen? Dus bijvoorbeeld: tekststring="tekst"    wordt    tekstarray=(  t e k s t  )  .

Bvd.
« Laatst bewerkt op: 2013/01/23, 15:07:27 door Nick Lamar »

Offline Bloom

  • Lid
Re: String to array in bash
« Reactie #1 Gepost op: 2013/01/23, 12:42:00 »
i=0
while [ $i -lt ${#tekststring} ]; do tekstarray[$i]=${tekststring:$i:1};  i=$((i+1)); done

Je kunt trouwens ook zonder apart array de tekststring zelf als een array benaderen en gebruiken (dat zie je hierboven ook).

Offline axelv

  • Lid
Re: String to array in bash
« Reactie #2 Gepost op: 2013/01/23, 12:57:36 »
Andere versie:
#!/bin/bash

# Convert String to array
s="tekst"
e=$(echo $s | sed 's/\(.\)/\1 /g')
a=($e)

echo "String = $s"
echo "e = \"$e\""
echo "a[*] = \"${a[*]}\""
for i in $(seq 0 $((${#a[*]} - 1))); do
echo "a[$i] = \"${a[$i]}\""
done

Uitvoeren:
chmod +x script.sh && bash script.sh
Resultaat:
String = tekst
e = "t e k s t "
a[*] = "t e k s t"
a[0] = "t"
a[1] = "e"
a[2] = "k"
a[3] = "s"
a[4] = "t"


Re: String to array in bash
« Reactie #3 Gepost op: 2013/01/23, 15:06:52 »
Beiden hartelijk dank! Hier kan ik mee uit de voeten.