我想在目录中的所有JavaScript文件中grep函数调用'init()'。我如何使用grep执行此操作?
特别是,如何转义括号()
?
答案 0 :(得分:48)
这取决于。如果使用常规grep,则不会转义:
echo '(foo)'|grep '(fo*)'
如果要将括号用作分组,则实际上必须转义。
如果您使用extended regular expressions,则会逃避:
echo '(foo)'|grep -E '\(fo*\)'
答案 1 :(得分:22)
如果您想要搜索字符串“init()”,请使用fgrep "init()"
或grep -F "init()"
。
这两个都将进行固定的字符串匹配,即将模式视为要搜索的纯字符串而不是正则表达式。我相信它也比正则表达式搜索更快。
答案 2 :(得分:4)
$ echo "init()" | grep -Erin 'init\([^)]*\)'
1:init()
$ echo "init(test)" | grep -Erin 'init\([^)]*\)'
1:init(test)
$ echo "initwhat" | grep -Erin 'init\([^)]*\)'
答案 3 :(得分:1)
移至根目录(如果您知道JavaScript文件的位置)。然后执行以下操作。
grep 'init()' *.js