"O" 또는 "o"로 시작하고 2개의 연속 문자를 포함하는 줄을 찾기 위해 grep을 사용하여 정규식을 작성하는 방법

"O" 또는 "o"로 시작하고 2개의 연속 문자를 포함하는 줄을 찾기 위해 grep을 사용하여 정규식을 작성하는 방법

"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-icCCCCc@user454038의 방법대신에.

c직접 따르지 않는 행에서 연속된 s도 일치시켜야 하는 경우 o대신 다음 명령을 사용하십시오.

grep -i '^o.*cc' file

관련 정보