Well, ya... I guess I did the equivalent (though not so concise) method after sending the first email to roundtable...
echo APP-AM005-a | sed 's/[[:alpha:]]//g;s/[[:punct:]]//g'
I like the search inversion though Sean. Much cleaner!
So the problem I have is solved, thanks Sean. But why won't my original method work? The [[:digit:]]* should have matched all the consecutive digits shouldn't it? And then the ( ) brackets should place the match into buffer 1.
Steve
IBM Global Services sjm@ca.ibm.com (204)792-3245
----- Forwarded by Steve Moffat/CanWest/IBM on 05/09/2007 04:08 PM -----
"Sean Walberg" sean@ertw.com Sent by: To swalberg@gmail.co Steve Moffat/CanWest/IBM@IBMCA m cc roundtable@muug.mb.ca Subject 05/09/2007 04:05 Re: [RndTbl] Oh great RE master PM
# echo BUILD-AM005-a | sed 's/[^0-9]//g' 005
Sean
On 5/9/07, Steve Moffat <Steve.Moffat@ca.ibm.com > 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@ca.ibm.com (204)792-3245
_______________________________________________ Roundtable mailing list Roundtable@muug.mb.ca http://www.muug.mb.ca/mailman/listinfo/roundtable
-- Sean Walberg sean@ertw.com http://ertw.com/