请稍侯

Shell 字符串分割

29 May 2013
a='hello,world,test'

1、使用cut/awk分割字符串,取出其中一部分

echo $a | cut -d, -f1
echo $a | awk -F ',' '{print $1}'

awk的-F开关指定分隔符,多个分隔符应当写在[]中。

2、使用IFS将字符串分割为数组

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

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

3、某些情况下使用字符替换也可以达到分割效果

使用外部命令tr或变量扩展格式${string//substr/replacement}来替换。

for s in ${a//,/ }; do
    echo "$s"
done