Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: sed vs gsed mismatch
To:
Greg Steuck <gnezdo@openbsd.org>
Cc:
tech@openbsd.org
Date:
Sun, 11 Feb 2024 09:01:02 +0100

Download raw body.

Thread
On Sat, Feb 10, 2024 at 11:53:28PM -0800, Greg Steuck wrote:
> Does anybody understand why /usr/bin/sed doesn't match gsed's behavior here?
> 
> % echo '  LLVM version 13.0.0' | gsed -n -e 's/.*version \(\([0-9]\+\.\)\+[0-9]\+\).*/\1/gp'
> 13.0.0
> % echo '  LLVM version 13.0.0' | sed -n -e 's/.*version \(\([0-9]\+\.\)\+[0-9]\+\).*/\1/gp'; echo
> 
> %
> 

+ is not a special character in basic regular expressions. If you want
to use it, you need sed -E. But then you must not escape + and the
parentheses.