Ayuda con la expresión regular del número de tarjeta

Ayuda con la expresión regular del número de tarjeta

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 -dy ?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 -Pexpresiones regulares compatibles con Perl

Árbitro:https://www.gnu.org/software/gnulib/manual/html_node/Regular-expression-syntaxes.html

información relacionada