Я столкнулся с проблемой при запуске mawk в Ubuntu 1604:
echo "123-456" | mawk '$0~/^[0-9]{3}/ {print $0}'
Приведенная выше команда ничего не выводит, хотя обычный шаблон действительно соответствует.
Затем я попытался запустить egrep с тем же регулярным шаблоном:
echo "123-456" | egrep '^[0-9]{3}'
Работает отлично!
Потом я посмотрел документ mawk, кажется, что основная причина в том, что «интервальные выражения традиционно не были доступны в awk». Поле "{3}" в обычном шаблоне вызывает проблему. Если я использую «[0-9] [0-9] [0-9]» вместо «[0-9] {3}»:, все будет работать нормально.
https://invisible -island.net / Мок / страница руководства / mawk.html
https://www.math.utah.edu/docs/info/gawk_5.html
Я попробовал опцию --posix' and
- re-interval 'для mawk, они не работают оба.
Возможно ли, что можно включить «Интервальные выражения» в mawk? Моя ОС - «Ubuntu 16.04.4», mawk - «1.3.3-17ubuntu2».
Спасибо.