He utilizado el siguiente comando+REGEX para enumerar todos los archivos que contienen números de tarjeta en un conjunto de archivos.
grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *
Probé este REGEX en una aplicación diferente y fue exitoso.
Respuesta1
Plain grep utiliza expresiones regulares básicas. Tus expresiones regulares usan -d
y ?
y {m,n}
eso no se reconocen.
Quieres grep -E
, pero es posible que no lo reconozcas \d
. Si no, cámbielo a[0-9]
grep -Erle '[3-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}' *
O utilizar grep -P
expresiones regulares compatibles con Perl
Árbitro:https://www.gnu.org/software/gnulib/manual/html_node/Regular-expression-syntaxes.html