开发者

How to escape parenthesis in grep

开发者 https://www.devze.com 2023-01-15 04:04 出处:网络
I want to grep for a function call \'init()\' in a开发者_开发技巧ll JavaScript files in a directory. How do I do this using grep?

I want to grep for a function call 'init()' in a开发者_开发技巧ll JavaScript files in a directory. How do I do this using grep?

Particularly, how do I escape parenthesis, ()?


It depends. If you use regular grep, you don't escape:

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

You actually have to escape if you want to use the parentheses as grouping.

If you use extended regular expressions, you do escape:

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


If you want to search for exactly the string "init()" then use fgrep "init()" or grep -F "init()".

Both of these will do fixed string matching, i.e. will treat the pattern as a plain string to search for and not as a regex. I believe it is also faster than doing a regex search.


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

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

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


Move to your root directory (if you are aware where the JavaScript files are). Then do the following.

grep 'init()' *.js
0

精彩评论

暂无评论...
验证码 换一张
取 消