2011-08-16 4 views
2

comment je tokenize une chaîne dans shellscript?
par exemple: chaîne donnée "a: b: c" et délimiteur ":", je voudrais retourner un tableau {a, b, c}
c'est équivalent à StringTokenizer de java.tokenize une chaîne dans shellscript

+0

Qu'est-ce que la coquille? frapper? –

+2

http://stackoverflow.com/questions/918886/split-string-based-on-delimiter-in-bash –

+0

@Anders Lindahl: oui bash est ok – user881480

Répondre

3
var="a:b:c" 
OLDIFS=$IFS 
IFS=":" 
read -a array <<< "$(printf "%s" "$var")" 
IFS=$OLDIFS 
echo ${#array[@]} 
echo ${array[0]} 
echo ${array[1]} 
echo ${array[2]} 
+0

Au lieu de 'read -a .. .', on peut aussi dire 'array = ($ var)' –

0
echo "a:b:c" | awk -F":" '{print "{"$1",",$2",",$3"}"}'