分页: 1 / 1

如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-05 22:46
xkowen
小弟初学,怎么将"12345"拆分成"1 2 3 4 5"这样的数组?有哪些方法?谢谢了。
例如:将a=12345,在脚本文件中拆分成b=(1 2 3 4 5)。

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-06 8:48
eexpress
拆开了,也不就是数组。
shell/bash可没自动类型转换。

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-06 10:39
pangding
嗯。而且不太清楚楼主拆开要做什么。
你可以用 ${a:0:1} ${a:1:1} 的方式来引用 a 的各个位。
${#a} 可以得到 a 串的长度。

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-06 18:00
jonef
a="stringwithoutspace"

方法1.

用sed把给每个字符后加个空格然后构建一个数组:

b=($(echo $s | sed 's/./ &/g;s/^ //'))

方法2.

利用seq和3楼所说的方法构建一个数组:)

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-07 9:02
zjfcctv
perl -e '@array=split(//, "12345");print join(" ", @array)'

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-08 22:35
fnan
或者:
b=($(echo $a|grep -o '.'|xargs))

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-09 9:31
xkowen
偶起初使用的方法与3楼一样,不过觉得4、6楼的方法更好。如果是使用awk,有该怎么差分呢?

Re: 如何将"12345"拆分成"1 2 3 4 5"这样的数组?

发表于 : 2011-05-09 22:55
fnan
echo $a|awk '{split($0,b,"");for (i in b) print b}'