[RndTbl] Oh great RE master

John Lange john.lange at open-it.ca
Wed May 9 16:47:53 CDT 2007

I'm confused; what do you mean by "get the 005 or of this string" ?

You want the output to look like:





I don't think sed is what you want.

I believe this:

echo BUILD-AM005-a | sed 's/.*\([[:digit:]]\).*/\1/g'

Returns 5 because you are substituting everything before and after the
digit with nothing.

Are the strings the same length all the time? Would:

echo BUILD-AM005-a | cut -c 9-11


If not then maybe:

echo BUILD-AM005-a | grep -E -o [0-9]{1\,}


On Wed, 2007-05-09 at 14:52 -0500, Steve Moffat wrote:
> Hi All;
> I've been trying to write a sed function to return only a numeric
> portion of a string, but can't seem to get it working.
> The input is a single string of letters and numbers, with the numbers
> always consecutive.
> For example: BUILD-AM005-a
> I want to get the 005 out of this string.
> echo BUILD-AM005-a | sed 's/.*\([[:digit:]]\).*/\1/g'
> will return the digit 5. This is good!
> So I add an asterisk to try to match multiple digits like:
> echo BUILD-AM005-a | sed 's/.*\([[:digit:]]*\).*/\1/g'
> and instead of returning 005, it doesn't match anything, so returns
> nothing.
> Can any of you RE maters help me out?
> Steve Moffat
> IBM Global Services
> sjm at ca.ibm.com
> (204)792-3245
> _______________________________________________
> Roundtable mailing list
> Roundtable at muug.mb.ca
> http://www.muug.mb.ca/mailman/listinfo/roundtable

More information about the Roundtable mailing list