Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 04 Nov 2015 13:53:18 -0700
From:      Ian Lepore <ian@freebsd.org>
To:        rank1seeker@gmail.com, hackers@freebsd.org
Subject:   Re: awk's curly braces (regex)
Message-ID:  <1446670398.91534.358.camel@freebsd.org>
In-Reply-To: <20151104211008.00006c16@gmail.com>
References:  <20151104211008.00006c16@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2015-11-04 at 21:10 +0100, rank1seeker@gmail.com wrote:
> 10.2-RELEASE-p6
> 
> # awk --version
> awk version 20121220 (FreeBSD)
> 
> # echo 2015 | awk '/^[0-9]/ {print}'
> Prints '2015'
> 
> # echo 2015 | awk '/^[0-9]{4}/ {print}'
> Won't
> 
> Why range/interval specified via curly braces doesn't work.
> PS: Yes I've tried escaping it with backslahes and double backslahes,
> nada!
> 
> man pages:
> --
> Regular expressions are as in egrep; see grep(1).
> --

For what it's worth, the manpage on a linux system I checked also says
the regex is like egrep, but then it points out that one difference is
"interval expressions" (curly brace stuff) which it says are "likely to
break old awk programs" so they're only enabled if --posix or --re
-interval options are given.  Our awk doesn't seem to support those
options.

I guess our awk might also avoid the interval expressions out of
caution for breaking old programs; maybe we need to add the options to
enable them, like gnu awk has.

-- Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1446670398.91534.358.camel>