哪些grep命令将在输出中包含当前函数名称?
|
我使用
-p
选项运行diff
,因此输出将包括每次更改发生的函数的名称。 grep
有类似的选择吗?如果没有,我还可以使用其他什么命令?
我希望在匹配之前只显示一行具有最新功能签名的行,而不是用3来显示紧接在匹配之前的固定数量的上下文行,而在文件中却保留了很多行。如果我要查找的选项是-p
,则输出可能看起来像这样,例如:
$ cat foo.c
int func1(int x,int y)
{
返回x + y;
}
int func2(int x,int y,int z)
{
int tmp = x + y;
tmp * = z;
返回tmp;
}
$ grep -p -n -e \'return \'foo.c
1-int函数1(int x,int y)
3:返回x + y;
-
5-int func2(int x,int y,int z)
9:返回tmp;
没有找到相关结果
已邀请:
9 个回复
臂哦
的控制,则
可以选择
。
剿畦缄饥小
您只需要git。被搜索的文件不需要是git repo的一部分。 但是,如果是,则省略
并获得即时速度提升!
秃拳割
对所有函数和所有foobar都进行摸索,然后仅对foobar和前几行进行摸索-这将仅仅是foobars和包含函数。 在Windows版本的cygwin上测试
镀建啼
不存在此功能(对improved2ѭ进行了改进)。 我确实希望这个存在。它会派上用场。有人确实在不久前实现了它,但是看起来好像他们的补丁从未被接受过(或者奇怪的是,甚至从未在线发布过)。您可以尝试通过电子邮件向他发送电子邮件,以查看他是否仍然有代码,并且仍然希望获得将C函数显示为
的选项。 您可以编写一个正则表达式来匹配C函数,但是我敢打赌这将是一个正则表达式的庞然大物。
哭木算
请享用。 :)
闯舱酮
上面假设函数签名是任何以字母(/ ^ [[:: alpha:]] /)开头的行。如果这不是编写代码的方式,请进行调整以适合您的情况。
贡炮逗握惫
的工具 因此,它适用于C文件或ctags支持的任何语言,但不能超出此范围。 无论如何,它将显示所有C函数头。这是我脚本的最大问题,您也许可以找到一种解决方法。 我调用了脚本“ cgrep.sh \”,其语法如下:
Cgrep.sh依靠ѭ17来工作,以生成函数头的搜索模式列表。然后,我们可以搜索函数头和搜索词。 事不宜迟,这里是cgrep.sh:
痰嫉
拟僚疽刊剔
将找到
删除的行(即所需的行),并且您将获得完全相同的函数匹配。