Необходимо включить «интервальные выражения» в сопоставлении регулярных выражений, указав параметр --posix
или --re-interval
.
например,
echo xx y11y rrr | awk --re-interval '{ if ($2 ~ /y[1-5]{2}y/) print $3}
На странице man:
- re-interval Включите использование интервальных выражений при сопоставлении регулярных выражений (см. Регулярные выражения ниже).Интервальные выражения традиционно недоступны на языке AWK.Стандарт POSIX добавил их, чтобы сделать awk и egrep согласованными друг с другом.Однако их использование может привести к поломке старых программ на AWK, поэтому gawk предоставляет их только в том случае, если они запрашиваются с помощью этой опции или когда указан параметр --posix.