Селекторы
Здесь "селектор" следует понимать, как
расширение понятия "шаблон", поскольку там где в структуре
команды указан шаблон, в общем случае может стоять любой селектор.
Замечание. Открывающая
скобка действия "{" должна быть в строке селектора.
В качестве селектора может быть:
Соответствующие примеры:
1) $3 != $4 && $3 > 1970
$3 % 2 == 1
$1=="Иванов" - кавычки, чтобы воспринималось, как строка.
2) /ab/ отлично от /a b/, / ab/ и /ab /
Nполя ^шаблон - по совпадению
Nполя !^шаблон - по несовпадению
Пример:
awk '$3~0 {print} ' < f-awk
echo
awk '$3!~0 {print} ' < f-awk
Иванов И.И. 1980 50
Хведоров И.Х. 1970 60
Петров А.В. 1979 40
Сидоров С.К. 1979 40
3) Шаблон может формировать множество образцов или
указывать, в каком месте поля искать:
/^a/ | поле начинается с "a" | |
/a$/ | поле кончается "a" | |
\+ | экранирует оператор | |
[abc] | любой из символов "a", "b" и "c" | |
[a-р] | любой символ диапазона | |
* | 0 или больше вхождений регулярного выражения | |
+ | 1 или больше вхождений регулярного выражения | |
? | 0 или 1 вхождение регулярного выражения | |
ab|cd | "ab" или "cd" |
Примеры сочетаний:
awk ' $3~/(7[0-9])$/ {print} ' f-awk
Результат:
Петров А.В. 1979 40
Сидоров С.К. 1979 40
Хведоров И.Х. 1970 60
То есть в третьем поле выделить 70-е годы (7 и еще
одна цифра от конца поля).