2017-05-18 2 views
-1

dans Bash, comment puis-je transformer ci-dessous chaîne dans un tableau Bash:Bash - Parse une chaîne dans un tableau séparé par des virgules

details="cl roo,dara shi,GD leader, is the man,YG FAMILY" 

Voici mon code:

IFS="[a-z],[a-z]" read -r -a details_list <<< "$details" 

sortie prévue lorsque matrice est itéré:

cl roo 
dara shii 
GD leader, is the man 
YG FAMILY 

sortie réelle lorsque matrice est itéré:

cl roo 
dara shii 
GD leader 
is the man 
YG FAMILY 
+0

double question: Voici [un lien] (http://stackoverflow.com/a/10586169/5612294)! – odarboe

+0

Je l'ai vérifié et il est différent de la sortie attendue. – stickyservernotes

+0

Comment déterminez-vous les virgules à briser? – 123

Répondre

0

Ce devrait fonctionner:

details="cl roo;dara shi;GD leader, is the man;YG FAMILY" 

IFS=';' read -r -a array <<< "$details" 

echo "${array[2]}" -> GD leader, is the man 
+0

Merci pour votre réponse. J'ai essayé ceci mais "le chef de GD, est l'homme" a été coupé en deux. Je veux le mettre dans un index. – stickyservernotes

+0

@stickyservernotes: Regardez ma modification. 'GD leader' est dans un –

+0

"est l'homme" est manquant. – stickyservernotes