我使用了以下命令+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