Because the awk conditional syntax is (among others)
if condition compound-statement else compound-statement
Just as in C, by the way. This makes
if condition compound-statement ';' else compound-statement
an error.
题
If this is good awk
syntax
awk '{if (0) {print""}}'
and so is this
awk '{if (0) print""; else print ""}'
, then why is this bad syntax??
awk '{if (0) {print""}; else print ""}'
解决方案
Because the awk conditional syntax is (among others)
if condition compound-statement else compound-statement
Just as in C, by the way. This makes
if condition compound-statement ';' else compound-statement
an error.