我想将冒号分隔的字符串拆分成数组。每个循环我都有类似ONE:TWO:THREE
的字符串,现在如何将其拆分为数组,以便我可以像string[1] //ONE, string[2] //TWO, string[3] //THREE
一样访问它?
这是我用于数组内容的循环:
WORDS=(ONE:TWO:THREE FIVE:FOUR:THREE)
for i in ${WORDS[@]} ; do
[..]
done
答案 0 :(得分:4)
以下应该这样做:
IFS=':' read -a arr <<< "$i"
在此之后你会看到:
echo ${#arr} # <-- 3
所以你的代码看起来像:
for word in "${WORDS[@]}"; do
IFS=':' read -a arr <<< "$word"
for part in "${arr[@]}"; do
# do something with the word
done
done