Linux ack/ag/grep能否打印函数名?

Linux ack/ag/grep能否打印函数名?,linux,search,grep,ack,ag,Linux,Search,Grep,Ack,Ag,使用ack或ag时,是否可以打印出现关键字的函数或类名?这是我渴望已久的东西 我认为这将是相当棘手的,因为不同的编程语言有不同的封装函数/类的方法 请注意,我的目标是通过C源代码进行搜索,但是我更喜欢涵盖更多语言/语法的通用解决方案 正如@Inian所评论的,使用ack、ag和grep很难获得一个健壮的解决方案,因为他们不知道这些语言的语法 然而,在我查看C源代码文件时,我使用了带有OR条件的ack来包含以函数定义开头的行。在我的例子中,我所有的函数要么返回int,要么什么都不返回。因此,以下代

使用ack或ag时,是否可以打印出现关键字的函数或类名?这是我渴望已久的东西

我认为这将是相当棘手的,因为不同的编程语言有不同的封装函数/类的方法


请注意,我的目标是通过C源代码进行搜索,但是我更喜欢涵盖更多语言/语法的通用解决方案

正如@Inian所评论的,使用ack、ag和grep很难获得一个健壮的解决方案,因为他们不知道这些语言的语法

然而,在我查看C源代码文件时,我使用了带有OR条件的ack来包含以函数定义开头的行。在我的例子中,我所有的函数要么返回int,要么什么都不返回。因此,以下代码打印出函数定义行以及包含关键字的行:

确认“关键字”^void“^int”
正如@Inian所评论的,使用ack、ag和grep很难获得一个健壮的解决方案,因为他们不知道这些语言的语法

然而,在我查看C源代码文件时,我使用了带有OR条件的ack来包含以函数定义开头的行。在我的例子中,我所有的函数要么返回int,要么什么都不返回。因此,以下代码打印出函数定义行以及包含关键字的行:

确认“关键字”^void“^int”
这里是ack的作者。不,我不知道有哪种类似greplike的工具能够理解它正在搜索的文本文件。这是人们一直要求的东西,但我从未想过要实现它

你说我认为这会很棘手,因为不同的编程语言有不同的封装函数/类的方法。你完全正确。此外,考虑评论“< /P>”之类的东西。 /*福娃*/

和文本字符串

printfoofoo

这会给任何搜索工具带来问题。字符串void foo的这些实例实际上都不是函数声明


查看beyondgrep.com上的页面。类似的内容可能会对您有所帮助。

这里是ack的作者。不,我不知道有哪种类似greplike的工具能够理解它正在搜索的文本文件。这是人们一直要求的东西,但我从未想过要实现它

你说我认为这会很棘手,因为不同的编程语言有不同的封装函数/类的方法。你完全正确。此外,考虑评论“< /P>”之类的东西。 /*福娃*/

和文本字符串

printfoofoo

这会给任何搜索工具带来问题。字符串void foo的这些实例实际上都不是函数声明


查看beyondgrep.com上的页面。类似的内容可能会对您有所帮助。

尽管您列出的所有程序目前都没有此功能,但Git使用基于语言的regexp在函数名中实现Git grep-L搜索。描述它是如何工作的。当前的regexp列表位于git源代码树中,可以按照上面博客中的描述进行扩展


此外,它还提供了一种从多种语言的文件中枚举标记的通用方法,但我还没有找到将此输出与git grep-L集成的方法。

虽然您列出的程序目前都没有此功能,但git使用基于语言的regexp在函数名中实现git grep-L搜索。描述它是如何工作的。当前的regexp列表位于git源代码树中,可以按照上面博客中的描述进行扩展


此外,它还提供了一种从多种语言的文件中枚举标记的通用方法,但我还没有找到将此输出与git grep-L集成的方法。

一个不知道底层语言语法的工具将无法做到这一点,显然,ack/ag不能这样做inherently@Inian除了ack/ag,还有没有语法知识的替代品?如果git-L能做到,为什么不能ack?@mmigdol-Wow。太棒了。Git继续让我惊讶!你可以通过解释这将如何解决我们的问题来回答这个问题。一个不知道底层语言语法的工具将无法做到这一点,显然,ack/ag不能这样做inherently@Inian除了ack/ag,还有没有语法知识的替代品?如果git-L能做到,为什么不能ack?@mmigdol-Wow。太棒了。Git继续让我惊讶!你可以通过解释这将如何解决我们的问题来回答这个问题。谢谢@Andy Lester。beyondgrep.com上的“更多工具”页面非常全面:谢谢,我很高兴你发现它很有用。您可能还对我开始的一个类似项目感兴趣,它是alternate*nix tools。哇!!这是altbox的杀手名单。dev:谢谢@A
恩迪·莱斯特。beyondgrep.com上的“更多工具”页面非常全面:谢谢,我很高兴你发现它很有用。您可能还对我开始的一个类似项目感兴趣,它是alternate*nix tools。哇!!这是altbox的杀手名单。戴夫:谢谢。我将研究如何在我们的案例中使用git。谢谢。我将研究如何在我们的案例中使用git。