A loop is a construct that allows us to perform one or more actions again and again. In awk, a loop can be specified using a while, do, or for statement.

While Loop

The syntax of a while loop is:

while (condition) 

The newline is optional after the right parenthesis. The conditional expression is evaluated at the top of the loop and, if true, the action is performed. If the expression is never true, the action is not performed. Typically, the conditional expression evaluates to true and the action changes a value such that the conditional expression eventually returns false and the loop is exited. For instance, if you wanted to perform an action four times, you could write the following loop:

i = 1
while ( i <= 4 ) {
	print $i

As in an if statement, an action consisting of more than one statement must be enclosed in braces. Note the role of each statement. The first statement assigns an initial value to i. The expression “i <= 4” compares i to 4 to determine if the action should be executed. The action consists of two statements, one that simply prints the value of a field referenced as “$i” and another that increments i. i is a counter variable and is used to keep track of how many times we go through the loop. If we did not increment the counter variable or if the comparison would never evaluate to false (e.g., i > 0), then the action would be repeated without end.

Do Loop

The do loop is a variation of the while loop. The syntax of a do loop is:

while ( ...

Get sed & awk, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.