Número do cartão ajuda a expressão regular [fechada]

0

Eu usei o seguinte comando + REGEX para listar todos os arquivos que contêm números de cartão em um conjunto de arquivos.

grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *

Eu testei este REGEX em um aplicativo diferente e foi bem-sucedido.

aprecie se alguém puder me ajudar neste caso. Obrigado

    
por user3148655 19.05.2016 / 18:05

1 resposta

2

O plain grep usa expressões regulares básicas. Sua regex usa -d e ? e {m,n} que não são reconhecidos.

Você deseja grep -E , mas isso pode não reconhecer \d . Se não mudar para [0-9]

grep -Erle '[3-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}' *

Ou use grep -P para usar regexes compatíveis com perl

Ref: link

    
por 19.05.2016 / 18:47