Arrays bash字符串到数组和数组到字符串

Arrays bash字符串到数组和数组到字符串,arrays,string,bash,Arrays,String,Bash,如何将字符串转换为N个字符的数组并返回到带空格的字符串? 我们如何删除这些空格 e、 g.123456789分为2,应该得到123456789,这将说明你的问题 将字符串转换为N个字符的数组: string="0123456789abcdefghijklmnopqrstuvwxyz" number_max_of_char_per_set=4 increment_by=$number_max_of_char_per_set for i in `seq 0 $increment_by ${#str

如何将字符串转换为N个字符的数组并返回到带空格的字符串? 我们如何删除这些空格


e、 g.123456789分为2,应该得到123456789,这将说明你的问题

将字符串转换为N个字符的数组:

string="0123456789abcdefghijklmnopqrstuvwxyz"
number_max_of_char_per_set=4
increment_by=$number_max_of_char_per_set

for i in `seq 0 $increment_by ${#string}`
#for i in $(seq 0 ${#string})
    do array[$i]=${string:$i:number_max_of_char_per_set}
done
。。。返回到带空格的字符串:

string_new=${array[@]}

echo "zero element of array is [${array[0]}]"
echo "entire array is [${array[@]}]"
echo $string_new
删除空格:

string_new=${string_new//[[:space:]]/}
echo $string_new

听起来你根本不需要数组,你的最终目标就是在两个字符组之间插入空格。如果是这样的话,你可以用

 sed 's/../& /g' <<< "your string here"
如果需要,我们如何删除空间

我不知道你指的是哪个空格。如果您谈论的是最终结果,那么使用原始输入而不是再次处理输出不是更容易吗? 无论如何,您可以使用tr-d“”删除任意字符串中的所有空格 如果需要将字符串拆分为数组,可以使用IFS变量: 如果=“” arr= read-r-a arr
yourVariable="$(sed 's/../& /g' <<< "your string here")"
str="123 123  12312312"
echo ${str// /}
//output: 12312312312312
$ str='123456789'

$ arr=( $(printf '%s\n' "$str" | sed 's/../& /g') )
$ declare -p arr
declare -a arr=([0]="12" [1]="34" [2]="56" [3]="78" [4]="9")

$ str="${arr[*]}"
$ echo "$str"
12 34 56 78 9

$ str="${str// }"
$ echo "$str"
123456789

$ str=$(printf "%s" "${arr[@]}")
$ echo "$str"
123456789