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