Grep: 왜 이스케이프 수정자를 사용합니까?

Grep: 왜 이스케이프 수정자를 사용합니까?

수정자의 의미는 다음과 같습니다.

-\{m\} exactly m repetitions of previous character
- \{m,\} at least m repetitions of previous character
- \{m,n\} any number of repetitions of prev char between m and n inclusive
- \< beginning of word
- \> end of word

그들을 피하는 이유는 무엇입니까?

예를 들어, file1에 "cat"이라는 단어가 포함되어 있는 경우:

$ egrep -n '\<cat\>' file1
17:cat

위 명령은 "cat"이라는 단어를 찾았지만 아래 명령은 어떻습니까? 아무것도 반환하지 않지만 실제로 무엇을 하고 있습니까?

$ egrep -n '<cat>' file1

답변1

초기 버전은 , , , , 및 메타 문자를 인식 grep하지 못했기 때문에 서로 일치했습니다. 유일한 메타 문자는 , , , 및 입니다 . 이 동작은 이전 버전과의 호환성을 위해 유지됩니다(이전 스크립트를 다시 작성할 필요 없이 그대로 작동할 수 있음). 따라서 최근에 개발된 메타 문자의 특수 속성을 활성화 하려면 를 사용해야 하며 , 개행 문자와 탭을 의미하는 and not 과 같이 개행 문자와 탭을 얻으려면 and 를 사용해야 합니다 .{…}?+(…)<>[…]^$.*\\ntnt\n\t

관련 정보