다음 명령+REGEX를 사용하여 파일 세트에 카드 번호가 포함된 모든 파일을 나열했습니다.
grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *
이 REGEX를 다른 응용 프로그램에서 테스트했는데 성공했습니다.
답변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