![grep Line에는 "CC"가 있지만 더 이상 C는 없습니다.](https://linux55.com/image/184071/grep%20Line%EC%97%90%EB%8A%94%20%22CC%22%EA%B0%80%20%EC%9E%88%EC%A7%80%EB%A7%8C%20%EB%8D%94%20%EC%9D%B4%EC%83%81%20C%EB%8A%94%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
예를 들어 다음 줄이 있습니다.
CCP2007
CCCP
CCCCPPPPCCC
CCCCCPPPPPCCCCC
CCP2007
한 줄에 두 글자만 있으므로 첫 번째 글자를 표시하고 싶습니다 . C
그 명령은 무엇입니까?
답변1
줄에 다른 문자가 없는 것으로 CC
시작하는 줄 과 일치합니다.C
grep '^CC[^C]*$' file
CC
줄의 시작 부분에 있을 필요 없이 마찬가지입니다 .
grep '^[^C]*CC[^C]*$' file
C
그리고 줄의 총 문자 수에 관계없이:
다음으로 시작 CC
하지만 시작하지 않는 행과 일치합니다 CCC
(예: CCAC
일치, CCCA
삭제).
grep '^CC[^C]' file
최대값과 최소값 2가 반복되는 행을 일치시킵니다 C
.
grep -v 'CCC'| grep 'CC'
답변2
GNU grep의 PCRE 모드 및 Perl 플레이버 사용주위를 둘러보세요CC
이전이나 이후에 아무것도 없는 경우와 일치합니다 C
.
grep -P '(?<!C)CC(?!C)'
또는 ERE 패턴과 유사한 것을 가짜로 만듭니다.
grep -E '(^|[^C])CC([^C]|$)'
답변3
다음을 포함하는 정확한 행을 찾으려면