[ale] If there a neat way of peeling apart bash variable by delimters?

Michael H. Warfield mhw at WittsEnd.com
Sun Sep 14 21:38:41 EDT 2014


On Sun, 2014-09-14 at 19:41 -0400, Neal Rhodes wrote:
> If in a shell script, you have a variable loaded with a character value,
> and there is a delimiter, and you want to peel it apart by that
> delimiter, is there a built-in expression to do that? 

> Here's what I'm doing, and I'm thinking there should be a better way. 

>         FULLNAME=$1                                  #eg:
> CustomerEntry.CreditLimit
>         DOT=`expr index $FULLNAME .`
>         DOTM1=`expr $DOT - 1`
>         TABLE=${FULLNAME:0:$DOTM1}             
>         FIELD=${FULLNAME:$DOT:40}              

Yes there is.  You specifically said "bash" in the subject and in the
talks we've had a ALE and AUUG over "belts and suspenders bash" the
speaker mentioned using regex's in bash and accessing the underlying
substring results.  Look for BASH_REMATCH variables and the =~ operator
in the bash documentation.

--
FOO=CustomerEntry.CreditLimit

if [[ "${FOO}" =~ (.*)\.(.*) ]] ; then
	echo "${BASH_REMATCH[1]} : ${BASH_REMATCH[2]}"
else
	echo nope
fi

CustomerEntry : CreditLimit
--

Is that what you're after?

> Neal Rhodes
> President, MNOP Ltd
> Lilburn, GA
> 770-972-5430
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://mail.ale.org/pipermail/ale/attachments/20140914/3c89902c/attachment.html>

Regards,
Mike
-- 
Michael H. Warfield (AI4NB) | (770) 978-7061 |  mhw at WittsEnd.com
   /\/\|=mhw=|\/\/          | (678) 463-0932 |  http://www.wittsend.com/mhw/
   NIC whois: MHW9          | An optimist believes we live in the best of all
 PGP Key: 0x674627FF        | possible worlds.  A pessimist is sure of it!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 465 bytes
Desc: This is a digitally signed message part
URL: <http://mail.ale.org/pipermail/ale/attachments/20140914/e2365bf0/attachment.sig>


More information about the Ale mailing list