shell 将字符串分割成数组

RobinLiew 2011-08-31

shell编程中,经常需要将由特定分割符分割的字符串分割成数组,多数情况下我们首先会想到使用awk

但是实际上用shell自带的分割数组功能会更方便。假如

a="one,two,three,four"

要将$a分割开,可以这样:

OLD_IFS="$IFS" 
IFS="," 
arr=($a) 
IFS="$OLD_IFS" 
for s in ${arr[@]} 
do 
    echo "$s" 
done

上述代码会输出

one 
two 
three 
four

arr=($a)用于将字符串$a分割到数组$arr${arr[0]}${arr[1]}...分别存储分割后的数组第12...项,${arr[@]}存储整个数组。变量$IFS存储着分隔符,这里我们将其设为逗号","OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。

相关推荐