![カード番号正規表現ヘルプ[閉じる]](https://linux33.com/image/88620/%E3%82%AB%E3%83%BC%E3%83%89%E7%95%AA%E5%8F%B7%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%83%98%E3%83%AB%E3%83%97%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
次のコマンド+ REGEXを使用して、カード番号を含むファイルセットのすべてのファイルを一覧表示しました。
grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *
私はこの正規表現を他のアプリケーションでテストし、成功しました。
答え1
通常のgrepはデフォルトの正規表現を使用します。あなたの正規表現は-d
andを使用し?
ますが、{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