Синтаксис регулярного выражения Awk с числом повторений – различная обработка между gawk 3 и gawk 4

У меня возникли проблемы с пониманием или объяснением, почему следующее выражение терпит неудачу в gawk 3.1.x и все же работает в gawk 4.1.x :

(Минимальный рабочий пример)

  • Использование awk для суммирования значений столбца на основе значений другого столбца
  • Разделить файл по шаблону, сохраняя только фрагменты, содержащие второй шаблон
  • Печать повторяющегося рисунка
  • Как суммировать массив чисел bash (некоторые в научной нотации)?
  • Как я могу выполнить двоичный поиск текстового файла для определенной строки символов?
  • Селективное извлечение данных
  • echo ";#ADCDE#" | awk '/#.{5}#$/' echo ";#ADCDE#" | awk '/#.{5}#$/' -> создает совпадение в gawk 4.1.x , не дает соответствия в gawk 3.1.x

    echo ";#ADCDE#" | awk '/#.*#$/' echo ";#ADCDE#" | awk '/#.*#$/' -> создает совпадение в обоих

    Что-то изменилось между gawk 3 и 4 в том, как обрабатываются регулярные выражения? Я не думал, что конструкция повторения {n} была новой для регулярных выражений. Такое же поведение происходит, если я изменяю точку (.) С классом символов или [AZ]

  • Подстановка на месте для строк, соответствующих некоторому шаблону в заданном наборе файлов
  • Поиск дубликатов экземпляров тега в файле
  • Как разбирать файл с конца в awk
  • Скопируйте файлы с родительской папкой в ​​новый каталог
  • Первые два поля, которые будут разделены _ и остальными полями, как они есть
  • AWK с спецификацией: Есть ли классный способ обработки спецификации Unicode с регулярным выражением?
  • One Solution collect form web for “Синтаксис регулярного выражения Awk с числом повторений – различная обработка между gawk 3 и gawk 4”

    Добавление --posix работает в 3.1

     echo ";#ADCDE#" | gawk --posix '/#.{5}#$/' 

    у меня есть

     awk --version GNU Awk 3.1.6 ... 

    С моей страницы man awk

      r{n} r{n,} r{n,m} One or two numbers inside braces denote an interval expres‐ sion. If there is one number in the braces, the preceding regular expression r is repeated n times. If there are two numbers separated by a comma, r is repeated n to m times. If there is one number followed by a comma, then r is repeated at least n times. Interval expressions are only available if either --posix or --re-interval is specified on the command line. 
    Linux и Unix - лучшая ОС в мире.