Операционная система UNIX. Руководство программиста

       

Выражения сравнения


Произвольные выражения, включающие сравнения цепочек символов или чисел, являются допустимыми шаблонами awk'а. Например, если требуется распечатать информацию только о странах, население которых превышает 100 миллионов, можно использовать шаблон

$3 > 100

Простая awk-программа, состоящая из одного этого шаблона без всякого действия, распечатает только те записи, значение третьего поля в которых больше 100:

Russia 8650 262 Asia China 3692 866 Asia USA 3615 219 North America Brazil 3286 116 South America India 1269 637 Asia

Чтобы напечатать названия стран, расположенных в Азии, надо набрать программу

$4 == "Asia" { print $1 }

Ее результатом будет

Russia China India

Проверяемые условия задаются знаками операций <, <=, ==, !=, >=, >. Если в выражении сравнения оба операнда являются числами, выполняется числовое сравнение; в противном случае операнды сравниваются как цепочки символов. Так, шаблон

$1 >= "S"

отбирает строки, начинающиеся с S, T, U и т.д.; в нашем случае это

USA 3615 219 North America Sudan 968 19 Africa

Если дополнительная информация о типе отсутствует, поля трактуются как цепочки символов, поэтому программа

$1 == $4

сравнивает первое и четвертое поля как цепочки символов и выводит на печать единственную строку:

Australia 2968 14 Australia



Содержание раздела