O'Reilly logo

sed & awk, 2nd Edition by Arnold Robbins, Dale Dougherty

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Relational and Boolean Operators

Relational and Boolean operators allow you to make comparisons between two expressions. The relational operators are found in Table 7.4.

Table 7.4. Relational Operators
OperatorDescription
<Less than
>Greater than
<=Less than or equal to
>=Greater than or equal to
==Equal to
!=Not equal to
~Matches
!~Does not match

A relational expression can be used in place of a pattern to control a particular action. For instance, if we wanted to limit the records selected for processing to those that have five fields, we could use the following expression:

NF == 5

This relational expression compares the value of NF (the number of fields for each input record) to five. If it is true, the action will be executed; otherwise, it will not.

Note

Make sure you notice that the relational operator “==” (“is equal to”) is not the same as the assignment operator “=” (“equals”). It is a common error to use “=” instead of “==” to test for equality.

We can use a relational expression to validate the phonelist database before attempting to print out the record.

NF == 6 { print $1, $6 }

Then only lines with six fields will be printed.

The opposite of “==” is “!=” (“is not equal to”). Similarly, you can compare one expression to another to see if it is greater than (>) or less than (<) or greater than or equal to (>=) or less than or equal to (<=). The expression

NR > 1

tests whether the number of the current record is greater than 1. As we’ll see in the next chapter, relational ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required