Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

Auteur Topic: [Opgelost] String to array in bash  (gelezen 482 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.