On page 22 of "Effective AWK programming" we read:
When awk statements within one rule are
short, you might want to put more than one
of them on a line. This is accomplished by
separating the statements with a semicolon
(`;'). This also applies to the rules
themselves. Thus, the program shown at the
start of this section could also be written
this way:
/12/ { print $0 } ; /21/ { print $0 }
NOTE: The requirement that states that rules
on the same line must be separated with a
semicolon was not in the original awk language;
it was added for consistency with the treatment
of statements within an action.
But when I try
gawk --posix '/a/ {print "swds"} /b/ {print "1234"}'
it works fine. Same if I omit "--posix". If it is a
requirement then why does omitting semicolons work ?