Re: BSD awk bug ?

2017-08-18 Thread Jamie Landeg-Jones
KIRIYAMA Kazuhiko  wrote:

> 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.

I agree. It's a pain in the arse. In these situations, I've had to use gawk 
instead (You can set POSIXLY_CORRECT in gawk if it helps you feel cleaner! :-) )

There is also 'mawk' in ports/lang, but I've never tried that.

Cheers, Jamie

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: BSD awk bug ?

2017-08-16 Thread Ngie Cooper (yaneurabeya)

> On Aug 15, 2017, at 20:15, KIRIYAMA Kazuhiko  wrote:
> 
> 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 ?
>> 
>> 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.

Hello Kiriyama-san,
I asked this same question a while back and was told that the {n} form 
didn’t work with nawk. I’ll have to dig up the exact post if it’s somewhere 
public.
Cheers,
-Ngie


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: BSD awk bug ?

2017-08-15 Thread KIRIYAMA Kazuhiko
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-unsubscr...@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-unsubscr...@freebsd.org"
> 

---
KIRIYAMA Kazuhiko
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: BSD awk bug ?

2017-08-15 Thread Tomoya Tabuchi
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-unsubscr...@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.

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-unsubscr...@freebsd.org"


BSD awk bug ?

2017-08-15 Thread KIRIYAMA Kazuhiko
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-unsubscr...@freebsd.org"