On Thu, 28 Jul 2016, Jiri B wrote:

Hi,

I can't understand a difference between OpenBSD and GNU sed when
handling '\+' (one or more).

Example:

$ echo 'tzdata-2016a-1.el7.noarch.rpm' | sed 's/\(tzdata\)\+.*/\1/'
tzdata-2016a-1.el7.noarch.rpm
$ echo 'tzdata-2016a-1.el7.noarch.rpm' | gsed 's/\(tzdata\)\+.*/\1/'
tzdata

$ echo '1123456' | sed -n '/1\+23456/p'
$ echo '1123456' | gsed -n '/1\+23456/p'
1123456

A bug or some hidden trick?

A bug in you example. Character '\+' is a plus, not "one or more".

For "one or more" you need '+' and extended regular expressions turned on with option -E. GNU sed probably has a different opinion about what operators are basic RE. See re_format(7).

Regards,
David

Reply via email to