program tip

grep에서 괄호를 이스케이프하는 방법

radiobox 2021. 1. 8. 08:05
반응형

grep에서 괄호를 이스케이프하는 방법


디렉토리의 모든 JavaScript 파일에서 'init ()'함수 호출을 grep하고 싶습니다. grep을 사용하여 어떻게합니까?

특히 괄호를 ()어떻게 이스케이프 합니까?


때에 따라 다르지. 일반 grep을 사용하면 이스케이프하지 않습니다.

echo '(foo)'|grep '(fo*)'

괄호를 그룹으로 사용하려면 실제로 이스케이프해야합니다.

확장 정규식 을 사용하는 경우 이스케이프합니다.

echo '(foo)'|grep -E '\(fo*\)'

당신이 "() 초기화"정확히 문자열을 검색 할 경우 사용 fgrep "init()"하거나 grep -F "init()".

둘 다 고정 된 문자열 일치를 수행합니다. 즉, 패턴을 정규식이 아닌 검색 할 일반 문자열로 취급합니다. 정규식 검색보다 빠르다고 생각합니다.


$ echo "init()" | grep -Erin 'init\([^)]*\)'
1:init()

$ echo "init(test)" | grep -Erin 'init\([^)]*\)'
1:init(test)

$ echo "initwhat" | grep -Erin 'init\([^)]*\)'

루트 디렉토리로 이동합니다 (JavaScript 파일의 위치를 ​​알고있는 경우). 그런 다음 다음을 수행하십시오.

grep 'init()' *.js

참조 URL : https://stackoverflow.com/questions/3673594/how-to-escape-parenthesis-in-grep

반응형