Arrays bash字符串到数组和数组到字符串
如何将字符串转换为N个字符的数组并返回到带空格的字符串? 我们如何删除这些空格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
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