![정규식을 사용하여 파일에 두 번 이상 나타나는 문자를 찾는 것은 어렵습니다.](https://linux55.com/image/20502/%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%91%90%20%EB%B2%88%20%EC%9D%B4%EC%83%81%20%EB%82%98%ED%83%80%EB%82%98%EB%8A%94%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%B0%BE%EB%8A%94%20%EA%B2%83%EC%9D%80%20%EC%96%B4%EB%A0%B5%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
임의의 코드가 포함된 파일이 있습니다. 각 코드에는 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