将冒号分隔的字符串拆分为数组

时间:2013-09-13 12:51:04

标签: arrays bash split

我想将冒号分隔的字符串拆分成数组。每个循环我都有类似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

1 个答案:

答案 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