有没有什么窍门grep在函数体通过使用函数名称?此外,我想使用正则表达式而不是全功能名称。grep函数体内功能名称
例如:linux内核驱动程序中有许多函数名称为“xxx_probe”。所以,我想在所有这些函数中搜索一些字符串。
有没有什么窍门grep在函数体通过使用函数名称?此外,我想使用正则表达式而不是全功能名称。grep函数体内功能名称
例如:linux内核驱动程序中有许多函数名称为“xxx_probe”。所以,我想在所有这些函数中搜索一些字符串。
-A num
grep的选项可能会有所帮助。它会在匹配行后打印尾部上下文的num
行。
grep "xxx_probe(" -A after-context-num | grep "search-str"
您可以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
我不知道文件是什么内核源代码一样,所以可能需要一些调整...
我不不知道有哪些工具可以让你在一个函数内部进行搜索。 –
我要么;)但我希望有一些命令行魔术技巧存在) –
我不认为你会找到任何greplike,但看看http://beyondgrep.com/more-tools/的一些工具这可能有帮助。 –