bash:将字符串读入数组bash并保留空格

时间:2013-06-06 14:41:06

标签: bash shell unix scripting solaris

我有字符串“你好,你好吗” 我想把这个字符串放到一个数组中,如下所示。但我想保留空间。关于如何做到的任何想法?

    a[0] a[1] a[2]    3   4 5   6     .... should have
     h    i   <space> h   o w <space> .... and so on.

3 个答案:

答案 0 :(得分:2)

一种方式,确定会有更好的解决方案,但这似乎对我有用:

unset arr; IFS=; for c in $(sed 's/./&\n/g' <<<"hi how are you"); do arr+=("$c"); done; echo "${arr[@]}"

它产生:

h
i

h
o
w

a
r
e

y
o
u

答案 1 :(得分:1)

eval a=( $(echo "hi how are you" | sed "s/\(.\)/'\1' /g") )

这真的很难看,也许有人可以提出没有eval ...

的东西

答案 2 :(得分:1)

可能不会很快,但不需要sed

z=()
while read -n 1 x; do
    z+=( "$x" )
done <<<"hi how are you"