here updated faster version ..
gimme_num( ) { local y o m='[0-9,.]' s=$'\n' i t ; t="(-?$m+)" ; unset -v o
; for n ; do i= ; if [[ $n =~ $t ]] ; then while [[ -v BASH_REMATCH[++i] ]]
; do o+=${BASH_REMATCH[i]}$s ; done ; fi ; [[ $i != 1 ]] && o+=$s ; done ;
[[ -v o ]] && printf %s "$o" ; }
On Tue, Feb 11, 2025, 10:11 AM microsuxx <[email protected]> wrote:
> ah , cool
>
> .. my bash 5.3 dev seems to have declare -n arr\[elem] while i think the
> old 5.2x that didnt work
>
> try plzz ..
>
> gimme_num( ) { local y o m='[0-9,.]' s=$'\n' i t ; t="(-?$m+)" ; unset -v
> o ; for n ; do unset -v i ; while [[ $n =~ $t ]] ; do y=${BASH_REMATCH[1]}
> n=${n/"$y"} i= o+=$y$s ; done ; [[ -v i ]] && o+=$s ; done ; [[ -v o ]] &&
> printf %s "$o" ; }
>
> On Tue, Feb 11, 2025, 10:07 AM Phi Debian <[email protected]> wrote:
>
>>
>>
>> On Tue, Feb 11, 2025 at 9:37 AM microsuxx <[email protected]> wrote:
>>
>>> how does it output strings .. ?
>>> i mean i dont get ur outputs
>>> 1 it doesnt include # and @ etc
>>> 2 no hex etc yet , only numbers and dots / commas
>>>
>>> gimme_num 0x10 60#yo 0x10
>>> 0
>>> 10
>>>
>>> 60
>>>
>>> 0
>>> 10
>>>
>>> but i dont get ur outputs such as 0x10xx or 64xx or the other ..
>>>
>>
>> I cut/pasted as is your code
>> $ gimme_num( ) { declare -n b=BASH_REMATCH\[1] ; local o m=[0-9,.] s=$n i
>> t ; t="(-?$m+)" ; unset -v o ; for n ; do unset -v i ; while [[ $n =~ $t ]]
>> ; do n=${n/"$b"} i= o+=$b$s ; done ; [[ -v i ]] && o+=$s ; done ; [[ -v o
>> ]] && printf %s "$o" ; }
>> $
>>
>> Then I run it with
>> $ echo $BASH_VERSION
>> 5.2.21(1)-release
>> $ shopt
>> autocd off
>> assoc_expand_once off
>> cdable_vars off
>> cdspell off
>> checkhash off
>> checkjobs off
>> checkwinsize on
>> cmdhist on
>> compat31 off
>> compat32 off
>> compat40 off
>> compat41 off
>> compat42 off
>> compat43 off
>> compat44 off
>> complete_fullquote on
>> direxpand off
>> dirspell off
>> dotglob off
>> execfail off
>> expand_aliases on
>> extdebug off
>> extglob off
>> extquote on
>> failglob off
>> force_fignore on
>> globasciiranges on
>> globskipdots on
>> globstar on
>> gnu_errfmt off
>> histappend off
>> histreedit off
>> histverify off
>> hostcomplete on
>> huponexit off
>> inherit_errexit off
>> interactive_comments on
>> lastpipe off
>> lithist on
>> localvar_inherit off
>> localvar_unset off
>> login_shell off
>> mailwarn off
>> no_empty_cmd_completion off
>> nocaseglob off
>> nocasematch off
>> noexpand_translation off
>> nullglob off
>> patsub_replacement on
>> progcomp on
>> progcomp_alias off
>> promptvars on
>> restricted_shell off
>> shift_verbose off
>> sourcepath on
>> varredir_close off
>> xpg_echo off
>>
>> And got this
>>
>> $ gimme_num 0x10 60#yo 0x10
>> 0x10xx60xx0x10xx$
>>
>>