by Steffen Schuler <schuler.steffen@[EMAIL PROTECTED]
>
Feb 20, 2008 at 12:03 AM
On Mon, 18 Feb 2008 04:54:11 -0800, Spiros Bousbouras wrote:
> 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 ?
If you have two rules consisting only of patterns like /a/ and /b/ or
NR == 1 and NR == 10 and put both conditions (rules) on a line you need to
separate them by semicolon; otherwise you get normally an error message
or a strange behavior.
--
Steffen