"O" 또는 "o"로 시작하고 2개의 연속된 "c" 문자를 포함하는 줄을 찾기 위해 grep을 사용하여 정규식을 작성하는 방법.
grep '^[Oo]c{2}' 파일 이름
답변1
다음을 제외하면 99% 매우 가깝습니다.
grep '^[Oo]c\{2\}' filename
또는 이에 상응하는 것:
grep -E '^[Oo]c{2}' filename
일반적인 표현
- 아시다시피
^[Oo]c
캐럿은 시작 부분과 일치하고^
그 안에 있는 모든 문자 와 일치합니다.[]
- 당신은 매우 가깝습니다
c{2}
. 이전 문자와 정확히 두 번 일치하게 됩니다c
. - 그러나 grep은 기본적으로 기본 정규식을 해석하고
{
그러한 일치 항목에 대한 메타 문자는 해석하지 않으므로 으로 변경하여\{
인식\}
하도록 했습니다. - 또는 확장 정규식을 활성화하여 백슬래시를 방지할 수 있습니다.
grep -E '^[Oo]c{2}' filename
일치하지 않는 경우 filename
일치시키려는 내용이 포함된 테스트 콘텐츠 샘플을 복사하고 다른 내용을 놓친 경우를 대비해 질문을 업데이트하여 표시할 수 있습니다.
답변2
이미 순수한 정규식 답변이 있지만 여기에 더 이상한 답변이 있습니다.
grep -i ^occ file
이 -i
플래그는 grep에게 대소문자를 구분하지 않도록 지시합니다. 이것은POSIX에 의해 정의됨따라서 모든 grep 구현에 나타나야 합니다. 일단 이것이 있으면 문자 두 개만 필요하므로 복잡하게 c
사용할 이유가 없습니다 . 짧고 명확합니다. 그러나 전체 정규식에 적용되므로 이는 또는 와도 일치합니다 . 이것을 원하지 않으면 다음을 사용하십시오.{2}
cc
-i
cC
CC
Cc
@user454038의 방법대신에.
c
직접 따르지 않는 행에서 연속된 s도 일치시켜야 하는 경우 o
대신 다음 명령을 사용하십시오.
grep -i '^o.*cc' file