代码之家  ›  专栏  ›  技术社区  ›  kitsune

在文件中搜索字符串而不进行索引的工具[关闭]

  •  151
  • kitsune  · 技术社区  · 16 年前

    我必须在一个非常古老的遗留应用程序中更改一些连接字符串,而编写这个应用程序的程序员认为将整个应用程序的连接字符串粘贴到各处是个好主意。

    Visual Studio的“当前项目”搜索速度非常慢,我不信任Windows搜索。

    那么,什么是最好的免费、无索引的文本搜索工具呢?它只需要返回一个列表,其中包含文件夹及其子文件夹中所需字符串的文件。

    我正在运行Windows 2003 Server。

    17 回复  |  直到 6 年前
        1
  •  57
  •   D'Arcy Rittich    8 年前

    Windows Grep 做得很好。

    编辑: 开发人员不再维护或提供Windows grep。这里有一个备用下载链接: Windows Grep - alternate

        2
  •  336
  •   SliverNinja - MSFT    11 年前

    我很喜欢 在文件中查找 对话 Notepad++ . 奖金 它是免费的。

    enter image description here

        3
  •  152
  •   Ian Boyd    10 年前

    还有一个叫做Windows的内置程序 findstr.exe 用它可以在文件中搜索。

    >findstr /s "provider=sqloledb" *.cs
    
        4
  •  39
  •   snowdude    12 年前

    Agent Ransack 是另一个好的。它速度快,免费,还有一些其他不错的功能,比如shell集成。

    Agent Ransack screenshot

        5
  •  33
  •   Anytoe    9 年前

    我喜欢Astrogrep。结果显示在列表中。单击一行将显示整行作为突出显示命中的预览。 它看起来很快,很瘦,而且是免费的。 在Windows 7、8、10和Windows Server 2008 R2上测试。 允许正则表达式。

    Latest AstroGrep Screenshot

    Astrogrep是一个Microsoft Windows GUI文件搜索(grep)实用程序。它的功能包括正则表达式、多功能打印选项、存储最近使用的路径以及具有“上下文”功能,这对于查看源代码非常有用。

    参考文献: AstroGrep

        6
  •  11
  •   Dan Rigby    8 年前

    我非常喜欢 grepWin .它是免费的,轻量的,可以从浏览器外壳中获得。我喜欢不必为了找东西而特意去寻找和启动一个程序。我可以在浏览器中右键单击并将其显示出来。

        7
  •  10
  •   pamir_miren    11 年前

    SeekFast 在文件中搜索文本非常方便-文本文件、MS Word、Excel、OpenOffice等。它有一个免费版本。

        8
  •  9
  •   Apocalisp    15 年前

    FileSeek . 它很快而且是免费的。它可以找到文本字符串,或者匹配正则表达式。

        9
  •  8
  •   Steve    10 年前

    到目前为止,Visual Studio在文件夹中的搜索速度最快。

    我相信它只智能地搜索文本(非二进制)文件,并且同一文件夹中的后续搜索速度非常快,与其他工具不同(可能文本文件适合Windows磁盘缓存)。

    在普通硬盘(没有SSD)上,VS2010需要1分钟搜索一个20GB文件夹,其中包含26K个文件、源代码和二进制文件。搜索15K个文件-其他文件可能由于是二进制文件而被跳过。在同一文件夹中的后续搜索以秒为顺序(直到从缓存中移出内容)。

    我为同一个文件夹找到的下一个最近的是grepwin。大约3分钟。我排除了大于2000KB的文件(默认)。“include binary files”设置在加速搜索方面似乎没有任何作用,看起来binary文件仍然被触动(bug?),但它们不会显示在搜索结果中。随后的搜索都需要同样的3分钟-无法利用硬盘缓存。如果我限制到小于200K的文件,那么初始搜索是2.5分钟,随后的搜索是以秒为单位的,大约和缓存中的vs-一样快。

    由于搜索所有内容(包括巨大的千兆字节二进制文件),代理程序ransack和fileseek在该文件夹上都非常慢,大约20分钟。他们根据资源监视器以每秒10-20MB的速度搜索。

    更新:可以将agent ransack设置为搜索特定大小的文件,使用<200kb的截止值,新搜索的时间为1:15分钟,后续搜索的时间为5分钟。比grepwin更快,和总体速度一样快。如果你想在标签中保留几个搜索,并且不想污染vs最近搜索的文件夹列表,并且你想保持搜索二进制文件的能力,这实际上是非常好的,vs似乎不想这样做。代理ransack还创建一个资源管理器上下文菜单项,因此很容易从文件夹启动。与grepwin相同,但用户界面更好,速度更快。

    我的新搜索设置是代理对文件名的内容和所有内容的重新打包(很棒的工具,即时结果!).

        10
  •  3
  •   Simon    16 年前

    TextPad 对这类事情很有好处。你可以免费使用它,但你会收到一条警告信息,要求你购买它。除此之外,它是一个很好的工具。

        11
  •  2
  •   Ruben    16 年前

    您可以安装cygwin(需要一些时间)并使用grep-r。

        12
  •  2
  •   FIBA    11 年前

    如果不想安装非Microsoft工具,请从Microsoft SysInternals下载strings.exe,并执行以下过程:

    @echo off
    if '%1' == '' goto NOPARAM
    if '%2' == '' goto NOPARAM
    if not exist %1 goto NOFOLDER
    
    echo ------------------------------------------
    echo - %1 : folder
    echo - %2 : string to be searched in the folder
    echo - PLEASE WAIT FOR THE RESULTS ...
    strings -s %1\* | findstr /i %2 > grep.txt
    notepad.exe grep.txt
    
    goto END
    
    :NOPARAM rem - input command not correct
    echo ====================================
    echo Usage of GREP.CMD:
    echo   Grep "SearchFolder" SearchString
    echo Please specify all parameters
    echo ====================================
    goto END
    
    :NOFOLDER
    echo Folder %1 does not exist
    goto END
    
    :END rem - exit
    
        13
  •  1
  •   Jonke    16 年前

    我总是使用grep或find from unxutils . 这在微软视窗系统上很管用。

        14
  •  1
  •   lightstep    11 年前

    FileSearchy . 它又快又自由。它确实有索引,但只针对文件名而不是内容。

        15
  •  1
  •   TechSpud    11 年前

    我建议 GOW 超过cygwin,因为它更轻,但仍然包括grep以及另外130个左右的*nix命令行实用程序,18MB而不是100MB。

        16
  •  1
  •   Pankaj Singh    10 年前

    如果您正在寻找一个基于控制台的实用程序来实现这一点,那么您可以参考这个URL并为自己创建一个。

    http://www.dotnetlogic.net/articles/search-for-filename-or-text-inside-other-files-in-directory-using-c/

    它的作用是在文件夹中查找搜索文本列表,如果某些文件也包含文本,则返回与相同名称匹配的文件

        17
  •  0
  •   Community CDub    6 年前

    我可以推荐 ACK -一个Linux根的命令行程序,幸运的是它在Windows上也能很好地工作。它比grep更快,它忽略了git/subversion目录和二进制文件,并且输出更易于理解。输入ack比grep快25%。)

    http://beyondgrep.com/

    我在巴邦(Cygwin)和Git的MSY上尝试过,效果非常好。它是用Perl编写的,所以也应该在cmd.exe中工作,Perl安装在操作系统的某个地方。

    对于Windows,您可以尝试“seekfast”,它会自动执行所有操作。在这里 https://seekfast.org 安全链接。