hpr2438 :: Gnu Awk - Part 8
More about loops

Hosted by Dave Morriss on Wednesday, 2017-12-06 is flagged as Explicit and is released under a CC-BY-SA license.
Awk utility, Awk language, gawk, loops.
2.
Listen in ogg,
opus,
or mp3 format. Play now:
Duration: 00:20:39
Download the transcription and
subtitles.
Learning Awk.
Episodes about using Awk, the text manipulation language. It comes in various forms called awk, nawk, mawk and gawk, but the standard version on Linux is GNU Awk (gawk). It's a programming language optimised for the manipulation of delimited text.
Gnu Awk - Part 8
Introduction
This is the eighth episode of the "Learning Awk" series that Mr. Young and I are doing.
Recap of the last episode
The
whileloop: tests a condition and performs commands while the test returns trueThe
do whileloop: performs commands after thedo, then tests afterwards, repeating the commands while the test is true. p>The
forloop (type 1): initialises a variable, performs a test, and increments the variable all together, performing commands while the test is true.The
forloop (type 2): sets a variable to successive indices of an array, performing a collection of commands for each index.
These types of loops were demonstrated by examples in the last episode.
Note that the example for 'do while' was an infinite loop (perhaps as a test of the alertness of the audience!):
#!/usr/bin/awk -f
BEGIN {
i=2;
do {
print "The square of ", i, " is ", i*i;
i = i + 1
}
while (i != 2)
exit;
}
The condition in the while is always true:
The square of 2 is 4
The square of 3 is 9
The square of 4 is 16
The square of 5 is 25
The square of 6 is 36
The square of 7 is 49
The square of 8 is 64
The square of 9 is 81
The square of 10 is 100
...
The square of 1269630 is 1611960336900
The square of 1269631 is 1611962876161
The square of 1269632 is 1611965415424
The square of 1269633 is 1611967954689
The square of 1269634 is 1611970493956
...
The variable i is set to 2, the print is executed, then i is set to 3. The test "i != 2" is true and will be ad infinitum.
Some more statements
We will come back to loops later in this episode, but first this seems like a good point to describe another statement: the switch statement.
Long notes
The notes for rest of this episode can be found by clicking this link.
Links
- GNU Awk User's Guide
- Previous shows in this series on HPR:
- "Gnu Awk - Part 1" - episode 2114
- "Gnu Awk - Part 2" - episode 2129
- "Gnu Awk - Part 3" - episode 2143
- "Gnu Awk - Part 4" - episode 2163
- "Gnu Awk - Part 5" - episode 2184
- "Gnu Awk - Part 6" - episode 2238
- "Gnu Awk - Part 7" - episode 2330
- Resources:
- ePub version of these notes
- PDF version of these notes
- Demonstration of the
switchstatement:- Script: switch_example.awk
- Output: switch_example.out
- Demonstration of the
breakstatement:- Script: divisor.awk
- Output: divisor.out
- Demonstration of the
continuestatement:- Script: continue_example.awk
- Demonstration of the
nextstatement:- Script: next_example.awk
- Output: next_example.out