On Mon, 2 Feb 2026, Davidson wrote:

> On Mon, 2 Feb 2026, [email protected] wrote:
>
>> why bash only, just because
>>
>> i found this solution that works
>
> Whole lot of text below, but I see no specification of what OP thinks
> a word is.
>
> So, Too-Long, Did-Not-Read
>
>> BUT, would one/some of you big brained folks elaborate
>>
>>
>>
>> Using =~ and regular expressions, converting a string to an array in a
>> single expression:
>>
>> 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 way this works is to perform an expansion of string which substitutes
>> each single character for (.), then match this generated regular
>> expression with grouping to capture each individual character into
>> BASH_REMATCH[]. Index 0 is set to the entire string, since that special
>> array is read-only you cannot remove it, note the :1 when the array is
>> expanded to skip over index 0, if needed. Some quick testing for
>> non-trivial strings (>64 chars) shows this method is substantially faster
>> than one using bash string and array operations.
>>
>> The above will work with strings containing newlines, =~ supports POSIX
>> ERE where . matches anything except NUL by default, i.e. the regex is
>> compiled without REG_NEWLINE. (The behaviour of POSIX text processing
>> utilities is allowed to be different by default in this respect, and
>> usually is.)
>>
>>
>


don't know what he meant
https://stackoverflow.com/questions/7578930/bash-split-string-into-character-array

Reply via email to