Conditional statements
AWK supports conditional statements such as if
and while
loops.
The if command
Assume you have the following file:
503080702090
Now, let's filter the values:
$ awk '{if ($1 > 50) print $1}' myfile

The if
statement checks every value and, if it's greater than 50
, it will print it.
You can use else
clauses like this:
$ awk '{if ($1 > 50){x = $1 * 2print x} else{x = $1 * 3print x}}' myfile

If you don't use brackets {}
to enclose your statements, you can type them on the same line with a semicolon:
$ awk '{if ($1 > 50) print $1 * 2; else print $1 * 3}' myfile
Note
Note that you can save this code into a file and assign it to the awk
command using the -f
option, as we will see later on this chapter.
while loops
AWK processes every line of your file, but what if you want to iterate over the fields of each line itself?
You can iterate over fields using a while
loop when using AWK.
Assume we have the following file:
321 524 124 174 185 254 195 273 345
Now let's iterate over the fields...