Nieuws:

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

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

Offline Nick Lamar

  • Lid
  • Steunpunt: Nee
[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
  • Steunpunt: Ja
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
  • Steunpunt: Nee
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"


Offline Nick Lamar

  • Lid
  • Steunpunt: Nee
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.