从文件夹中的文本文件中search关键字列表

我已经在一个文本文件中编译了一个db对象名的列表,每行一个名字。 我想知道每个名字,它在哪里使用。 目标search是一组包含源代码的子文件夹的文件夹。

在放弃寻找工具来开始创build自己的工具之前,也许你可以帮助指出一个现有的工具。

理想情况下,它应该是一个Windows桌面应用程序。 我以前没有用过grep。

使用grep (这个命令的端口有很多的窗口,搜索网页)。

最终,使用AgentRansack

请参阅我们的源代码搜索引擎 。 它根据感兴趣的语言的原子(标记)索引一个大的代码库,然后使用该索引来快速执行用语言元素表示的结构化查询。 它是一种超级grep,但它不被注释或字符串文字所愚弄,并自动忽略空白。 这意味着你比使用grep获得的误报少得多。

如果您有一个标识符“foo”,以下查询将查找所有提及:

  I=foo 

对于C和Java,可以将标识符访问的类型限制为使用,读取,写入或定义。

  D=bar* 

只能找到以字母“bar”开头的标识符的声明

您可以使用语言标记序列编写更复杂的查询:

 'int' I=*baz* '[' 

对于C,会发现任何包含字母“baz”的变量名称的声明,并且显式地声明一个数组。

你可以在GUI中看到命中,一键导航到任何命中的源代码视图。

这是一个Windows应用程序。 它处理各种各样的语言:C#,C ++,Java,等等。

我已经创建了一个SSIS包来加载我的500多个源代码文件,这些文件分布在属于几个项目的一些深度文件夹中,成为一个表格,其中1行为1行(总数为10K +行)。

然后,我通过在MS-SQL的RegEx的帮助下,交叉应用保留db对象的5K +关键字列表的表来选择语句, http://www.simple-talk.com/sql/ t-sql-programming / clr-assembly-regex-functions-for-sql-server-by-example / 。 查询花了将近1.5小时才能完成。

我知道这是一个漫长的,但这正是我所需要的。 我感谢你为引导我而做出的努力。 如果有人对我的方法感兴趣,我会很乐意进一步解释细节。

在这里输入图像描述

 insert dbo.DbObjectUsage select do.Id as DbObjectId, fl.Id as FileLineId from dbo.FileLine as fl -- 10K+ cross apply dbo.DbObject as do -- 5K+ where dbo.RegExIsMatch('\b' + do.name + '\b', fl.Line, 0) != 0