Sujet : One True AWK bug?
De : jeojet (at) *nospam* invalid.invalid
Groupes : comp.lang.awkDate : 09. May 2024, 17:43:03
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v1iuen$otom$1@dont-email.me>
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/awkawk version 20240122
$ original-awk --version # version Debian apt currently has
awk version 20220912