On Mon, Feb 02, 2026 at 17:18:57 +0000, [email protected] wrote:
> why bash only, just because

"Because every real language has a sensible way to do this, so there's
no challenge."  I'm guessing.

> i found this solution that works
> BUT, would one/some of you big brained folks elaborate

Elaborate on what?

> string="wonkabars"
> [[ "$string" =~ ${string//?/(.)} ]]       # splits into array
> printf "%s\n" "${BASH_REMATCH[@]:1}"      # loop free: reuse fmtstr
> declare -a arr=( "${BASH_REMATCH[@]:1}" ) # copy array for later

> The above will work with strings containing newlines,

Indeed, it seems to.  Unfortunately, your sample code uses a string
containing only letters, instead of a more interesting input.

hobbit:~$ string=$'abc \t\n\n\'"\\'
hobbit:~$ [[ $string =~ ${string//?/(.)} ]]
hobbit:~$ declare -p BASH_REMATCH
declare -a BASH_REMATCH=([0]=$'abc \t\n\n\'"\\' [1]="a" [2]="b" [3]="c" [4]=" " 
[5]=$'\t' [6]=$'\n' [7]=$'\n' [8]="'" [9]="\"" [10]="\\")

So... what was your question?

Reply via email to