정규식을 사용하여 파일에 두 번 이상 나타나는 문자를 찾는 것은 어렵습니다.

정규식을 사용하여 파일에 두 번 이상 나타나는 문자를 찾는 것은 어렵습니다.

임의의 코드가 포함된 파일이 있습니다. 각 코드에는 10개의 문자가 있으며 파일에서 해당 문자가 두 번 이상 나타나는 코드를 찾으려고 합니다. 나는 이것을하고있다 :

grep DD* [filename]

그러면 문자 "D"가 2번 나타나는 코드가 검색되지만 "D"가 1번 나타나는 코드도 표시됩니다. 2번 발생하는 코드만 표시하도록 정규식을 어떻게 변경할 수 있나요?

답변1

*정규식은 이전 엔터티가 0회 이상 반복됨을 나타내는 수량자입니다.

수량자를 제거하세요.

grep DD filename

위의 내용은 "D"가 3번 이상 나타나는 행과도 일치합니다.

"D"뿐만 아니라 임의의 문자를 두 번 이상 원하는 경우:

grep -E '(.)\1' filename

"D"를 정확히 2번 원하는 경우:

grep -E '([^D]|^)DD([^D]|$)' filename

관련 정보