If Statement (The GNU Awk User’s Guide)
Next: While Statement, Up: Statements [Contents][Index]
7.4.1 The if-else Statement
The if-else statement is awk’s decision-making statement. It looks like this:
if (condition) then-body [else else-body]
The condition is an expression that controls what the rest of the statement does. If the condition is true, then-body is executed; otherwise, else-body is executed. The else part of the statement is optional. The condition is considered false if its value is zero or the null string; otherwise, the condition is true. Refer to the following:
if (x % 2 == 0)
print "x is even"
else
print "x is odd"
In this example, if the expression ‘x % 2 == 0’ is true (i.e., if the value of x is evenly divisible by two), then the first print statement is executed; otherwise, the second print statement is executed. If the else keyword appears on the same line as then-body and then-body is not a compound statement (i.e., not surrounded by braces), then a semicolon must separate then-body from the else. To illustrate this, the previous example can be rewritten as:
if (x % 2 == 0) print "x is even"; else
print "x is odd"
If the ‘;’ is left out, awk can’t interpret the statement and it produces a syntax error. Don’t actually write programs this way, because a human reader might fail to see the else if it is not the first thing on its line.