Date: Fri, 6 Nov 2015 19:28:53 +0100 From: <rank1seeker@gmail.com> To: hackers@freebsd.org Cc: "Ian Lepore" <ian@freebsd.org>, "Chris H" <bsd-lists@bsdforge.com> Subject: Re: awk's curly braces (regex) Message-ID: <20151106192853.00005e57@gmail.com> In-Reply-To: <3605b86a5de658159efd2e014a75b0e1@ultimatedns.net> References: <20151104211008.00006c16@gmail.com> <1446670398.91534.358.camel@freebsd.org> <3605b86a5de658159efd2e014a75b0e1@ultimatedns.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 04 Nov 2015 19:36:29 -0800 "Chris H" <bsd-lists@bsdforge.com> wrote: > On Wed, 04 Nov 2015 13:53:18 -0700 Ian Lepore <ian@freebsd.org> wrote > > > 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). > > > -- > Your SHELL can be a "gatcha", as well. I know my shell. Soner or later it always ends up in script => /bin/sh > > > > 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 Then, mentioned part of man pages has been blindly pasted. awk's curly braces don't work as regex in FreeBSD, nor can it be enabled. Here is a proof that regex curly part is matched literally: # echo '2015{40}' | awk '/^[0-9]+{40}/ {print}' 2015{40} You devs decide best solution for awk, but for start, you can edit man pages at least. Thx, Domagoj
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151106192853.00005e57>