중복 가능성:
정규식에서 어떤 문자를 이스케이프해야 합니까?
-E
"검색어"를 정규식으로 처리하는 플래그가 있다는 것을 알고 있습니다 . 하지만 그렇지 않더라도 grep
특정 캐릭터에게는 특별대우가 주어지는 것 같습니다.
예를 들어, 다음을 실행하면:
grep "$var" *
$
그런 다음 파일의 각 줄을 나열합니다( 줄 끝 정규식 으로 사용된다고 가정합니다 ). 이 기간도 특정 상황에서 어떤 캐릭터를 찾는 것 같습니다.
그렇다면 특수문자를 사용할 때 주의해야 할 것은 무엇입니까 grep
?
답변1
기본 정규 표현식(BRE)이 기본적으로 grep
사용됩니다 . 문법을 배우려면 BRE의 리소스(예: man grep
및 )를 확인하세요. in은 쉘에 특별하기 때문에 man regex
전혀 전달되지 않습니다 . $
라는 쉘 변수가 있는 경우 해당 확장이 실제로 표시됩니다. 이렇게 하지 않으면 어디에서나 일치하는 빈 문자열만 전달됩니다."$var"
grep
var
grep
grep
편집: 에서BRE용 POSIX 사양, 특수 문자에는 *
, ^
, $
, .
, [
,\
리터럴 문자열만 일치시키고 싶고 BRE에서 어떤 문자가 특별한 의미를 갖는지 걱정할 필요가 없다면 대신 fgrep
/를 사용해야 합니다 grep -F
(둘 다 동일합니다. 둘 다 고정 문자열과 일치합니다).