次のコマンド + REGEX を使用して、一連のファイル内のカード番号を含むすべてのファイルを一覧表示しました。
grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *
この正規表現を別のアプリケーションでテストしたところ、成功しました。
答え1
プレーン grep は基本的な正規表現を使用します。正規表現で-d
は、認識されない?
およびが使用されています。{m,n}
したいのですgrep -E
が、認識されない可能性があります\d
。そうでない場合は変更してください[0-9]
grep -Erle '[3-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}' *
または、grep -P
Perl互換の正規表現を使用するために使用します
参照:https://www.gnu.org/software/gnulib/manual/html_node/Regular-expression-syntaxes.html