2015-10-20 64 views
0

有没有什么窍门grep在函数体通过使用函数名称?此外,我想使用正则表达式而不是全功能名称。grep函数体内功能名称

例如:linux内核驱动程序中有许多函数名称为“xxx_probe”。所以,我想在所有这些函数中搜索一些字符串。

+0

我不不知道有哪些工具可以让你在一个函数内部进行搜索。 –

+0

我要么;)但我希望有一些命令行魔术技巧存在) –

+0

我不认为你会找到任何greplike,但看看http://beyondgrep.com/more-tools/的一些工具这可能有帮助。 –

回答

0

-A num grep的选项可能会有所帮助。它会在匹配行后打印尾部上下文的num行。

grep "xxx_probe(" -A after-context-num | grep "search-str" 
0

您可以grep你要找的使用pcregrep功能:

pcregrep -M "(?s)int foo_probe.*?(?=^\}$)" somefile.c 

这将启动以“INT foo_probe”搜索,然后在与开始的下一行结束它“} ”。 (?s)将文件视为单行,以便.与换行符匹配。

从那里,这是很容易管到一个第二的grep:

pcregrep -M "(?s)int foo_probe.*?(?=^\}$)" somefile.c | grep something 

我不知道文件是什么内核源代码一样,所以可能需要一些调整...