我使用下面的command+REGEX列出了一组文件中包含卡号的所有文件。
grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *
我在一个不同的应用程序中测试了这个REGEX,它是成功的。
发布于 2016-05-19 16:47:08
普通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兼容的regexes。
参考文献:https://www.gnu.org/software/gnulib/manual/html_节点/正则表达式-syntaxes.html
https://unix.stackexchange.com/questions/284219
复制相似问题