Unix系统的SHELL程序如何将字符串分割成数组

来源:互联网 发布:json压缩工具 编辑:程序博客网 时间:2024/05/29 04:10
代码:test.sh
#!/bin/basha="one,two,three,four"#要将$a分割开,可以这样:OLD_IFS="$IFS"IFS=","arr=($a)IFS="$OLD_IFS"for s in ${arr[@]}do     echo "$s" done

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]} ... 分别存储分割后的数组第1 2 ... 项 ,${arr[@]}存储整个数组。变量$IFS存储着分隔符,这里我们将其设为逗号 "," OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。

来自:http://1985wanggang.blog.163.com/blog/static/776383320121745626320/