列が数値であることを確認するために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