
列が数値であることを検証する 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
0123456789
は、10進数の数字(通常は のいずれかですが、条件によっては他の10進数の数字(Unicodeには何百もの数字があります))に一致するPerl正規表現演算子です。0123456789٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹րցւփքօֆּ ...聖書の言葉෮෯๐๑๒๓๔๕๖๗๘๙໐໑໒໓໔໕໖໗໘໙༠༡༢༣༤༥༦༧༨༩၀၁၂၃၄၅၆၇၈၉႐႑႒႓႔言語よろしくお願いいたします᱇᱈᱉᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉꧐꧑꧒ ꧓꧔꧕꧖꧗꧘꧙꧰꧱꧲꧳꧴꧵꧶꧷꧸꧹꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹0123456789