On Wed, May 04, 2016 at 03:44:26PM +1000, Philip Rhoades wrote:
> People,
> 
> This behaves as expected:
> 
>   echo 'This is a test 12335 and 669384 535xy4' | sed 's/[0-9]*//g'
> 
> but I would expect this:
> 
>   echo 'This is a test 12335 and 669384 535xy4' | sed 's/[0-9]*//'
> 
> to delete the first string of digits but it doesn't do anything . .
> clarification from a sed guru?
> 

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).

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.

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