gpt4 book ai didi

bash - 如何将字符串转换为 Bash 中单个字符的数组?

转载 作者:行者123 更新时间:2023-11-29 09:21:13 24 4
gpt4 key购买 nike

我如何获取一个字符串,比如“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com