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 <fxmb...@gmail.com> 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 <phi.deb...@gmail.com> wrote: > >> >> >> On Tue, Feb 11, 2025 at 9:37 AM microsuxx <fxmb...@gmail.com> 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$ >> >>