+ -
当前位置:首页 → 问答吧 → shell中调用awk,切分字符串

shell中调用awk,切分字符串

时间:2011-09-23

来源:互联网

有这么个需求:
在shell脚本中,有大概这样的变量:
#空格分开的字符串
head="aa bb cc"

现在想把$head按空格切分开,放到数组里,以供后续的使用。
似乎应该是用awk来实现,
具体该怎么做啊?

或用其它的也行。

作者: LeonTown   发布时间: 2011-09-23

array=($head)

作者: joan8363   发布时间: 2011-09-23

楼上的方法很好,在linux平台可以识别

对于其他环境,试试
set -A aa `echo $head`
echo ${aa[0]}
echo ${aa[1]}

作者: justkk   发布时间: 2011-09-23

引用 2 楼 justkk 的回复:

楼上的方法很好,在linux平台可以识别

对于其他环境,试试
set -A aa `echo $head`
echo ${aa[0]}
echo ${aa[1]}


可以用,
能够得到aa的元素个数吗?

作者: LeonTown   发布时间: 2011-09-23

还有,能设置为根据其它分隔符切割吗?

作者: LeonTown   发布时间: 2011-09-23

办法都是有的,你提出要求吧.

作者: qq120848369   发布时间: 2011-09-23

C/C++ code
[root@localhost bashShell.dir]# head="aa bb cc"
[root@localhost bashShell.dir]# arr=(${head})
[root@localhost bashShell.dir]# echo ${arr[0]}
aa
[root@localhost bashShell.dir]# echo ${arr[1]}
bb
[root@localhost bashShell.dir]# echo ${arr[2]}
cc
[root@localhost bashShell.dir]# 

作者: qq120848369   发布时间: 2011-09-23

C/C++ code
[root@localhost bashShell.dir]# echo $head
aa,bb,cc
[root@localhost bashShell.dir]# echo $head | tr "," " "
aa bb cc
[root@localhost bashShell.dir]# arr=($(echo $head | tr "," " "))
[root@localhost bashShell.dir]# echo ${arr[0]}
aa
[root@localhost bashShell.dir]# echo ${arr[1]}
bb
[root@localhost bashShell.dir]# 

作者: qq120848369   发布时间: 2011-09-23

引用 3 楼 leontown 的回复:

引用 2 楼 justkk 的回复:

楼上的方法很好,在linux平台可以识别

对于其他环境,试试
set -A aa `echo $head`
echo ${aa[0]}
echo ${aa[1]}


可以用,
能够得到aa的元素个数吗?

echo ${#aa[*]}

作者: zmlovelx   发布时间: 2011-09-23