我如何获取一个字符串,比如“Hello World!”并将其拆分为各个字符?
使用上面的例子,我想要一个数组,每个值都有一个字符。所以数组的内部最终看起来像:
{"H", "e", "l", "l", "o", "", "W", "o", "r", "l", "d", “!”
最佳答案
str="Hello world!"
for (( i=0 ; i < ${#str} ; i++ )) {
arr[$i]=${str:i:1}
}
#print
printf "=%s=\n" "${arr[@]}"
输出
=H=
=e=
=l=
=l=
=o=
= =
=w=
=o=
=r=
=l=
=d=
=!=
您可以使用
将任何命令的结果分配到数组中mapfile -t array < <(command args)
不幸的是,定义自定义分隔符 -d
需要 bash 4.4.+。比方说,想要将上面的字符串分成 2 个字符 - 使用 grep
mapfile -t -d '' a2 < <(grep -zo .. <<<"$str")
printf "=%s=\n" "${a2[@]}"
输出:
=He=
=ll=
=o =
=wo=
=rl=
=d!=
关于bash - 如何将字符串转换为 Bash 中单个字符的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43360955/