This chapter explains AWK's loops with suitable example. Loops are
used to execute a set of actions in a repeated manner. The loop
execution continues as long as the loop condition is true.
For Loop
The syntax of
for loop is −
Syntax
for (initialisation; condition; increment/decrement)
action
Initially, the
for statement performs initialization action,
then it checks the condition. If the condition is true, it executes
actions, thereafter it performs increment or decrement operation. The
loop execution continues as long as the condition is true. For instance,
the following example prints 1 to 5 using
for loop −
Example
[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'
On executing this code, you get the following result −
Output
1
2
3
4
5
While Loop
The
while loop keeps executing the action until a particular logical condition evaluates to true. Here is the syntax of
while loop −
Syntax
while (condition)
action
AWK first checks the condition; if the condition is true, it executes
the action. This process repeats as long as the loop condition
evaluates to true. For instance, the following example prints 1 to 5
using
while loop −
Example
[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'
On executing this code, you get the following result −
Output
1
2
3
4
5
Do-While Loop
The
do-while loop is similar to the while loop, except that the test condition is evaluated at the end of the loop. Here is the syntax of
do-whileloop −
Syntax
do
action
while (condition)
In a
do-while loop, the action statement gets executed at
least once even when the condition statement evaluates to false. For
instance, the following example prints 1 to 5 numbers using
do-while loop −
Example
[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'
On executing this code, you get the following result −
Output
1
2
3
4
5
Break Statement
As its name suggests, it is used to end the loop execution. Here is
an example which ends the loop when the sum becomes greater than 50.
Example
[jerry]$ awk 'BEGIN {
sum = 0; for (i = 0; i < 20; ++i) {
sum += i; if (sum > 50) break; else print "Sum =", sum
}
}'
On executing this code, you get the following result −
Output
Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45
Continue Statement
The
continue statement is used inside a loop to skip to the
next iteration of the loop. It is useful when you wish to skip the
processing of some data inside the loop. For instance, the following
example uses
continue statement to print the even numbers between 1 to 20.
Example
[jerry]$ awk 'BEGIN {
for (i = 1; i <= 20; ++i) {
if (i % 2 == 0) print i ; else continue
}
}'
On executing this code, you get the following result −
Output
2
4
6
8
10
12
14
16
18
20
Exit Statement
It is used to stop the execution of the script. It accepts an integer
as an argument which is the exit status code for AWK process. If no
argument is supplied,
exit returns status zero. Here is an example that stops the execution when the sum becomes greater than 50.
Example
[jerry]$ awk 'BEGIN {
sum = 0; for (i = 0; i < 20; ++i) {
sum += i; if (sum > 50) exit(10); else print "Sum =", sum
}
}'
Output
On executing this code, you get the following result −
Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45
Let us check the return status of the script.
Example
[jerry]$ echo $?
On executing this code, you get the following result −
Output
10
No comments:
Post a Comment