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.
The show is available on the Internet Archive at: https://archive.org/details/hpr2438
Listen in ogg,
spx,
or mp3 format. Play now:
Duration: 00:20:39
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 b-yeezi and I are doing.
Recap of the last episode
The
while
loop: tests a condition and performs commands while the test returns trueThe
do while
loop: performs commands after thedo
, then tests afterwards, repeating the commands while the test is true. p>The
for
loop (type 1): initialises a variable, performs a test, and increments the variable all together, performing commands while the test is true.The
for
loop (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
switch
statement:- Script: switch_example.awk
- Output: switch_example.out
- Demonstration of the
break
statement:- Script: divisor.awk
- Output: divisor.out
- Demonstration of the
continue
statement:- Script: continue_example.awk
- Demonstration of the
next
statement:- Script: next_example.awk
- Output: next_example.out