grep은 기본적으로 어떤 특수 문자를 구문 분석합니까? [복사]

grep은 기본적으로 어떤 특수 문자를 구문 분석합니까? [복사]

중복 가능성:
정규식에서 어떤 문자를 이스케이프해야 합니까?

-E"검색어"를 정규식으로 처리하는 플래그가 있다는 것을 알고 있습니다 . 하지만 그렇지 않더라도 grep특정 캐릭터에게는 특별대우가 주어지는 것 같습니다.

예를 들어, 다음을 실행하면:

grep "$var" *

$그런 다음 파일의 각 줄을 나열합니다( 줄 끝 정규식 으로 사용된다고 가정합니다 ). 이 기간도 특정 상황에서 어떤 캐릭터를 찾는 것 같습니다.

그렇다면 특수문자를 사용할 때 주의해야 할 것은 무엇입니까 grep?

답변1

기본 정규 표현식(BRE)이 기본적으로 grep사용됩니다 . 문법을 배우려면 BRE의 리소스(예: man grep및 )를 확인하세요. in은 쉘에 특별하기 때문에 man regex전혀 전달되지 않습니다 . $라는 쉘 변수가 있는 경우 해당 확장이 실제로 표시됩니다. 이렇게 하지 않으면 어디에서나 일치하는 빈 문자열만 전달됩니다."$var"grepvargrepgrep

편집: 에서BRE용 POSIX 사양, 특수 문자에는 *, ^, $, ., [,\

리터럴 문자열만 일치시키고 싶고 BRE에서 어떤 문자가 특별한 의미를 갖는지 걱정할 필요가 없다면 대신 fgrep/를 사용해야 합니다 grep -F(둘 다 동일합니다. 둘 다 고정 문자열과 일치합니다).

관련 정보