Проблема с шаблоном регулярного выражения для проверки цифр в ksh

Проблема с шаблоном регулярного выражения для проверки цифр в ksh

Я писал скрипт ksh для проверки того, что столбец является числовым. Шаблон регулярного выражения определен в файле конфигурации, например \d+.\d+. Но это не работает, когда я использую dшаблон. Однако [0-9]{1,9}работает. Есть ли какие-нибудь соображения по этому поводу?

  • Вот версия ksh, которую я использую:
    $ ksh --version
      version         sh (AT&T Research) 93u+ 2012-08-01
    
  • Фрагмент кода для сравнения шаблонов. Если я предоставлю $col_pattкак \d+это не будет работать но [0-9]{1,}будет работать
    val=$(awk -F "$sep" -v n="$col_pos" -v m="$col_patt" 'NR!=1 && $n !~ "^" m "$" {
                             printf "%s:%s:%s\n", FILENAME, FNR, $n > "/dev/stderr"
                             count++
                           }
                           END {print count+0}' "$cp_input" 2>> $script_path/errors_${file_name_patt}.log
                           )
    
  • Вот используемый шаблон:\d*\.\d+

решение1

Различные утилиты, языки, библиотеки регулярных выражений/шаблонов и API поддерживают различные операторы/подстановочные знаки.

\d— оператор регулярных выражений Perl, который соответствует десятичной цифре (обычно любой из 0123456789, но при некоторых условиях может соответствовать другим десятичным цифрам (в Unicode их сотни, например 0123456789014 ... оптово-розничная торговля ෮෯๐๑๒๓๔๕๖๗๘๙໐໑໒໓໔໕໖໗໘໙༠༡༢༣༤༥༦༧༨༩��������������������������������������������� Лучший способ заполнить пробел Свободное использование ᅠ ... ꧓꧔꧕꧖꧗꧘꧙꧰꧱꧲꧳꧴꧵꧶꧷꧸꧹꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹0123456789

Связанный контент