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