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

时间:2011-11-18 10:40:58

标签: windows search text

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

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

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

3 个答案:

答案 0 :(得分:1)

使用grep(这个命令有大量的端口用于Windows,搜索网页)。

最终,请使用AgentRansack

答案 1 :(得分:0)

请参阅我们的Source Code Search Engine。它根据感兴趣的语言的原子(标记)索引大型代码库,然后使用该索引快速执行以语言元素表示的结构化查询。它是一种超级grep,但它不会被注释或字符串文字所欺骗,它会自动忽略空格。这意味着你得到的误报率比用grep得到的少得多。

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

 I=foo

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

  D=bar*

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

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

'int' I=*baz* '['

对于C,会找到包含字母“baz”并且显然声明为数组的任何变量名的声明。

您可以在GUI中查看匹配,只需单击一次导航到任何匹配的源代码视图。

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

答案 2 :(得分:0)

我创建了一个SSIS包来加载我的500多个源代码文件,这些文件被分发到一些属于几个项目的文件夹深度,分成一个表,文件中有1行作为1行(总共10K +行)。

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

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

enter image description here

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