Date: Wed, 16 Aug 2017 12:15:47 +0900 From: KIRIYAMA Kazuhiko <kiri@kx.openedu.org> To: freebsd-current@freebsd.org Subject: Re: BSD awk bug ? Message-ID: <201708160315.v7G3FlAV081765@kx.openedu.org> In-Reply-To: <20170816013634.GA8152@tomoyat1.com> References: <201708160114.v7G1EkxS079546@kx.openedu.org> <20170816013634.GA8152@tomoyat1.com>
next in thread | previous in thread | raw e-mail | index | archive | help
At Wed, 16 Aug 2017 10:36:36 +0900,
Tomoya Tabuchi wrote:
>
> On Wed, Aug 16, 2017 at 10:14:46AM +0900, KIRIYAMA Kazuhiko wrote:
> > admin@tbedfpc:~/tmp % ll
> > total 12
> > -rw-r--r-- 1 admin admin 235 Aug 16 10:01 regex-1.sh
> > -rw-r--r-- 1 admin admin 236 Aug 16 10:01 regex-2.sh
> > -rw-r--r-- 1 admin admin 260 Aug 16 10:01 regex.sh
> > admin@tbedfpc:~/tmp % cat regex.sh
> > #!/bin/sh
> >
> > data='1 2 3 4 5 6
> > 1 2 3 4 5
> > 1 2 3 4 5 6
> > 1 2 3 4 5 6
> > 1 2 3 4
> > 1 2 3'
> >
> > IFS=$'\n'
> > for datum in $data; do
> > if echo "$datum" | egrep -q '^([^[:space:]]+[[:space:]]+){5}'; then
> > echo "$datum"
> > else
> > echo "Not 6 components! : \"$datum\""
> > fi
> > done
> > admin@tbedfpc:~/tmp % sh ./regex.sh
> > 1 2 3 4 5 6
> > Not 6 components! : "1 2 3 4 5"
> > 1 2 3 4 5 6
> > 1 2 3 4 5 6
> > Not 6 components! : "1 2 3 4"
> > Not 6 components! : "1 2 3"
> > admin@tbedfpc:~/tmp % cat regex-1.sh
> > #!/bin/sh
> >
> > _f_awk='
> > {
> > if ($0 ~ /^([^[:space:]]+[[:space:]]+){5}/) {
> > print $0
> > } else {
> > print "Not 6 components! : \"" $0 "\""
> > }
> > }'
> >
> > data='1 2 3 4 5 6
> > 1 2 3 4 5
> > 1 2 3 4 5 6
> > 1 2 3 4 5 6
> > 1 2 3 4
> > 1 2 3'
> >
> > echo "$data" | awk "$_f_awk"
> > admin@tbedfpc:~/tmp % sh ./regex-1.sh
> > Not 6 components! : "1 2 3 4 5 6"
> > Not 6 components! : "1 2 3 4 5"
> > Not 6 components! : "1 2 3 4 5 6"
> > Not 6 components! : "1 2 3 4 5 6"
> > Not 6 components! : "1 2 3 4"
> > Not 6 components! : "1 2 3"
> > admin@tbedfpc:~/tmp % cat regex-2.sh
> > #!/bin/sh
> >
> > _f_awk='
> > {
> > if ($0 ~ /^([^[:space:]]+[[:space:]]+){5}/) {
> > print $0
> > } else {
> > print "Not 6 components! : \"" $0 "\""
> > }
> > }'
> >
> > data='1 2 3 4 5 6
> > 1 2 3 4 5
> > 1 2 3 4 5 6
> > 1 2 3 4 5 6
> > 1 2 3 4
> > 1 2 3'
> >
> > echo "$data" | gawk "$_f_awk"
> > admin@tbedfpc:~/tmp % sh ./regex-2.sh
> > 1 2 3 4 5 6
> > Not 6 components! : "1 2 3 4 5"
> > 1 2 3 4 5 6
> > 1 2 3 4 5 6
> > Not 6 components! : "1 2 3 4"
> > Not 6 components! : "1 2 3"
> > admin@tbedfpc:~/tmp % uname -a
> > FreeBSD tbedfpc 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r321597: Thu Jul 27 12:30:57 UTC 2017 root@tbedfc:/usr/obj/usr/src/sys/GENERIC amd64
> > admin@tbedfpc:~/tmp % pkg info -aI|grep gawk
> > gawk-4.1.4_1 GNU version of Awk
> > admin@tbedfpc:~/tmp %
> >
> >
> > Is this the BSD awk (/usr/bin/awk) bug ?
> >
> > ---
> > KIRIYAMA Kazuhiko
> > _______________________________________________
> > freebsd-current@freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-current
> > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
>
> Hello Kiriyama-san,
>
> The man page awk(1) says that {m,n} matcning is not supported. The "{5}"
> part matches the literal sequence of characters it's made out of, I suppose.
Oops. I missed "STANDARDS" section. Thanks for pointed out.
# But as it says in front "awk supports extended regular
# expressions (EREs). See re_format(7) for more information
# on regular expressions.", I'd like to coinside with
# re_format(7) spec.
>
> Someone please correct me if I'm wrong.
>
> Regards,
> Tomoya
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
>
---
KIRIYAMA Kazuhiko
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708160315.v7G3FlAV081765>
