You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From: [email protected]
Newsgroups: comp.lang.awk
Subject: One True AWK bug?
Date: Thu, 9 May 2024 16:43:03 -0000 (UTC)
Organization: A noiseless patient Spider
Message-ID: <[email protected]>
Is this a bug in original-awk, aka "The One True Awk" ?
I noticed in this one-liner if the conditional in the print statement
below lacks parentheses it produces and "illegal statement" error:
--
$ printf 'foo\n\nbar\n' |nawk '{print $0 != "" ? $0 : "[blank]"}'
nawk: syntax error at source line 1
context is
{print $0 >>> != <<<
nawk: illegal statement at source line 1
nawk: illegal statement at source line 1
--
Adding parentheses OR rewriting as a match fixes things:
--
$ printf 'foo\n\nbar\n' |nawk '{print $0 !~ /^$/ ? $0 : "[blank]"}'
foo
[blank]
bar
$ printf 'foo\n\nbar\n' |nawk '{print ($0 != "") ? $0 : "[blank]"}'
foo
[blank]
bar
--
Both mawk and gawk don't seem to care about lack of parentheses:
--
$ printf 'foo\n\nbar\n' |mawk '{print $0 != "" ? $0 : "[blank]"}'
foo
[blank]
bar
$ printf 'foo\n\nbar\n' |gawk '{print $0 != "" ? $0 : "[blank]"}'
foo
[blank]
bar
--
Note 'nawk' here is NOT gawk, it's a more recent version of original-awk:
$ nawk --version # from https://github.com/onetrueawk/awk
awk version 20240122
$ original-awk --version # version Debian apt currently has
awk version 20220912
The text was updated successfully, but these errors were encountered:
I agree the grammar is in need of some careful cleanup. I had spent some time working on that for eg. issue #149 but left unfinished. I will take a close look at this one as well, and see if I can come up with a solution without increasing the conflicts.
Found on comp.lang.awk:
The text was updated successfully, but these errors were encountered: