On Wed, May 04, 2016 at 10:42:20AM -0700, Samuel Sieb wrote:
> On 05/04/2016 10:09 AM, Jon LaBadie wrote:
> > The '*' means "zero or more digits".  Don't forget that zero.
> > The first match is where there are zero digits, i.e. at the
> > beginning of the line.  So sed replaces it with "//" (nothing).
> > 
> However, usually regexps are greedy so they match as much as possible, not
> the minimum.  And somehow it does work when you use /g so it is matching
> more.
> 
> > Try sed 's/[0-9]*/X/' to confirm.
> > 
> > You really want sed 's/[0-9][0-9]*//'  which reads a digit
> > followed by zero or more additional digits.
> > 
> Or use + as has been mentioned elsewhere in this thread.

Traditionally sed has used basic RE syntax not the extended
syntax that includes "+".  If the OP uses a sed such as
exists on my systems, you can get extended RE syntax with
the "-r" option.

   sed -r 's/[0-9]+//'

Samuel, does your sed support extended REs by default?  If so,
what system has that version?

jl
-- 
Jon H. LaBadie                  jo...@jgcomp.com
--
users mailing list
users@lists.fedoraproject.org
To unsubscribe or change subscription options:
http://lists.fedoraproject.org/admin/lists/users@lists.fedoraproject.org
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org

Reply via email to