how do I tokenize a string in shellscript?
for example: given string "a:b:c" and delimiter ":", I would like to return an array {a,b,c}
it's equivalent to java's StringTokenizer.
Asked
Active
Viewed 1.2k times
3

user881480
- 5,005
- 6
- 32
- 31
-
2http://stackoverflow.com/questions/918886/split-string-based-on-delimiter-in-bash – Anders Lindahl Aug 16 '11 at 06:11
-
@Anders Lindahl: yes bash is ok – user881480 Aug 16 '11 at 06:14
-
excellent link, elegant answer – user881480 Aug 16 '11 at 09:43
2 Answers
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]}

glenn jackman
- 238,783
- 38
- 220
- 352

jfg956
- 16,077
- 4
- 26
- 34