什么是Windows的优秀grep工具?

What are good grep tools for Windows?

有关于GREP Windows工具的建议吗?理想情况下可以利用64位操作系统。

当然,我知道Cygwin,也发现了Powergrep,但我想知道那里是否有隐藏的宝石?


findstr功能相当强大,支持正则表达式,并且具有已经在所有Windows计算机上运行的优点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
c:\> FindStr /?

Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         Matches pattern if at the beginning of a line.
  /E         Matches pattern if at the end of a line.
  /L         Uses search strings literally.
  /R         Uses search strings as regular expressions.
  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /X         Prints lines that match exactly.
  /V         Prints only lines that do not contain a match.
  /N         Prints the line number before each line that matches.
  /M         Prints only the filename if a file contains a match.
  /O         Prints character offset before each matching line.
  /P         Skip files with non-printable characters.
  /OFF[LINE] Do not skip files with offline attribute set.
  /A:attr    Specifies color attribute with two hex digits. See"color /?"
  /F:file    Reads file list from the specified file(/ stands for console).
  /C:string  Uses specified string as a literal search string.
  /G:file    Gets search strings from the specified file(/ stands for console).
  /D:dir     Search a semicolon delimited list of directories
  strings    Text to be searched for.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR"hello there" x.y' searches for"hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurances of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

示例用法:findstr text_to_find *或递归搜索findstr /s text_to_find *


根据评论中的建议,我已经开始使用grepwin,它很棒而且免费。

(我仍然是Powergrep的粉丝,但我不再使用它了。)

我知道你已经提到过,但是Powergrep很棒。

我最喜欢的功能包括:

  • 右键单击文件夹在其上运行powergrep
  • 使用正则表达式或文本
  • 为要包含和排除的文件指定通配符
  • 搜索和替换
  • 预览模式很好,因为您可以确保要替换您想要的内容。

现在我意识到其他grep工具可以完成上述所有工作。只是Powergrep将所有功能打包到一个非常易于使用的GUI中。

来自那些带给你雷格斯巴迪和我除了爱他们的东西没有任何联系的人。(需要注意的是,RegexBuddy本身包含了grep的基本版本(对于Windows),它的成本比Powergrep低很多。)

其他解决方案现有的Windows命令

  • 芬德斯特
  • 在PowerShell中选择字符串

Windows上的Linux命令实现

  • 赛文
  • 现金

图形界面的grep工具

  • 天文学家
  • 巴雷格里普
  • 格雷温

其他grep工具

  • DNGRIP


grepwin自由和开源(GPL)

enter image description herei一直在使用grepwin接受英语tortoisesvn 210人。他干净的Windows工作…………………

stefanstools.sourceforge.net grepwin.html http:/ / /


2013年7月更新:

我现在在Windows上一直使用的另一个grep工具是astrogrep:

AstroGrep awesomeness

它不仅可以显示行搜索(即命令行grep的--context=num),而且还可以显示非常宝贵的信息。而且速度很快。速度非常快,即使是在一台带有非SSD驱动器的旧电脑上(我知道,他们以前用旋转磁盘来做这个硬盘驱动器,称为盘片,疯狂吧?)

它是免费的。它是可移植的(简单的压缩文件解压)。

原始答案2008年10月

alt textGNU GREP正常

例如,您可以在此处下载:(站点ftp)

所有常见的选项都在这里。

它与gawk和xargs(包括gnuwin32中的find)结合在一起,您可以像在Unix上一样编写脚本!

另请参见我用于递归grep的选项:

1
grep --include"*.xxx" -nRHI"my Text to grep" *


PowerShell的Select-String cmdlet在1.0版中很好,但在2.0版中明显更好。将PowerShell内置到最新版本的Windows中意味着您在这里的技能将永远有用,而无需首先安装某些东西。

New parameters added to Select-String: Select-String cmdlet now supports new parameters, such as:

  • -Context: This allows you to see lines before and after the match line
  • -AllMatches: which allows you to see all matches in a line (Previously, you could see only the first match in a line)
  • -NotMatch: Equivalent to grep -v o
  • -Encoding: to specify the character encoding

我觉得为Get-ChildItem -Recurse .创建一个函数gcir是有利的,它具有正确传递参数的智能,为Select-String创建一个别名ss。所以你要写:

gcir *.txt | ss foo


它可能并不完全属于"grep"类别,但如果没有一个名为agentransack的实用程序,我就无法在Windows上运行。它是一个基于GUI的"在文件中查找"实用程序,支持regex。用鼠标右键点击一个文件夹,点击"ransack…",然后找到包含你要查找的内容的文件,这非常简单。速度也非常快。


Baregrep(Baretail也很好)


这是一对夫妇的年以来,你问的问题,但我的房间astrogrep D(http:/ / astrogrep.sourceforge.net)。

它是免费的,开源的,和有一个简单的接口。搜索代码和使用它所有的时间。


powershell入住和中心位置。在这里,你会如何使用它。在grepish方式:

1
Get-ChildItem -recurse -include *.txt | Select-String -CaseSensitive"SomeString"

它recursively searches所有文本文件在当前的目录树的SomeStringsensitivity的案例。

甚至更好,运行本:

1
function pgrep { param([string]$search, [string]$inc) Get-ChildItem -recurse -include $inc | Select-String -CaseSensitive $search }

然后:

1
pgrep SomeStringToSearch *.txt

然后,这真的很神奇的功能,使它的别名,添加您的配置文件,你可以powershell几乎具有很多痛苦的不适当的命令行工具。


Cygwin包括grep。如果你安装cygwin,所有的GNU工具和Unix工具在Windows上都能很好地工作。

网址:http://www.cygwin.com/


git on windows=grep in cmd.exe

我刚发现安装Git会给您一些基本的Linux命令:cat、grep、scp和所有其他好的命令。

安装,然后将git bin文件夹添加到您的路径中,然后您的cmd.exe具有基本的Linux功能!

http://code.google.com/p/msysgit/downloads/list?CAN=3


ACK在Windows上工作得很好(如果您有Perl的话)。我发现它在很多方面都比grep好。


dngrep柚子的工具是一个开源的Windows。它supports和很酷的特点包括:号码

  • 要替换的
  • 点击搜索,并且他会在浏览器的右folder
  • 提前协调搜索和搜索选项,如xpath
  • 在搜索的PDF和Word文件档案,档案,

恕我直言,餐厅和酒店的员工很好的接口:)


嗯,在GNU GREP的Windows端口旁边:

网址:http://gnuwin32.sourceforge.net/

还有Borland的GRIP(非常类似于GNU一)在免费软件Borland的免费C++编译器中(它是一个带有命令行工具的免费软件)。


我总是使用Wingerep,但我对它有一些问题,不能放弃文件。


我已经成功地使用GNU公用事业的Win32的语言,和一些时间很好的柚子和其他方便友好的尾的GNU工具的Win32。即使是最好的packaged壳和清洁的executables Win32的命令中提示。

酒店的packaged尾是很好的语言的小应用程序。


我是ABA搜索和替换的作者。与Powergrep一样,它支持正则表达式、保存模式以备将来使用、撤消替换、使用HTML/css/js/php的语法突出显示预览、不同的编码,包括utf-8和utf-16。

与Powergrep相比,GUI的混乱程度更低。在输入模式时,ABA会立即开始搜索(增量搜索),因此您可以使用正则表达式进行实验,并立即看到结果。

欢迎您试用我的工具,我很乐意回答您的任何问题。


我想和一个免费的工具,允许你的Windows的葡萄,这对他和folder点击和搜索到的文件,每一个regex -没有任何NAG屏幕。

以下是一个快速的解决方案的基础上,建议在findstr后入住酒店。

他创造的所有文本文件,您的硬盘工具让你保持长期住在那里。这rename蝙蝠或以下.cmd粘贴到它:

1
2
3
4
5
@echo off
set /p term="Search term>"
del %temp%\grepresult.txt
findstr /i /S /R /n /C:"%term%""%~1\*.*">"%temp%\grepresult.txt"
start notepad"%temp%\grepresult.txt"

然后browse的sendto folder。他browse %APPDATA%\Microsoft\Windows\SendTo和Windows 7的这批文件和shortcut变装的sendto folder *。

即使这个问题,这是保持它的shortcut 1 GREPsendto位于顶部的叶。

的东西,我想在旁边的酒店位于管的输出通过一个强大的东西,会findstrHTML文件,这样你可以点击每个输出行打开的文件。另外,我不认为它是一folders shortcuts厂。我要检查的参数D和看到,如果它包含".lnk"。


Unxutils是我使用的,非常适合我…


我borland把柚子,但只发现一年的模式,它不会匹配。eeeks。我发现其他人没有它并不位于年吗?即使是写了简单的文本搜索,不喜欢葡萄,它带来了他与fs.exe伪造的源代码。

柚子不能……

1
2
C:\DEV>GREP GAAPRNTR \SOURCE\TPALIB\*.PRG
<no results>

Windows findstr工程…………………

1
2
3
4
5
C:\DEV>FINDSTR GAAPRNTR \SOURCE\TPALIB\*.PRG
\SOURCE\TPALIB\TPGAAUPD.PRG:ffSPOOL(cRPTFILE, MEM->GAAPRNTR, MEM->NETTYPE)
\SOURCE\TPALIB\TPPRINTR.PRG:    AADD(mPRINTER,   TPACONFG->GAAPRNTR)
\SOURCE\TPALIB\TPPRINTR.PRG:               IF TRIM(TPACONFG->GAAPRNTR) <> TRIM(mPRINTER[2])
\SOURCE\TPALIB\TPPRINTR.PRG:                   REPLACE TPACONFG->GAAPRNTR WITH mPRINTER[2]


我们的工具的选择是:Windows的葡萄appropriately摄像机

  • 好简单的GUI
  • supports搜索和替换
  • 行,行,可以显示(Around发现
  • 在寻找可以在csvs columns和固定宽度的研究


如果你想使用简单的工具创建一个Windows的柚子,柚子,和一个被称为P的可用的免费下载从我们的网站下载:www.adjutantit.com家里的菜单。

Windows需要有好的柚子和自己的文件,所以我写了我自己的,这似乎更多的支持。你可以选择和folder,右点击和发送它的P -葡萄。在unpdated的sendto folder得到安装。


一个好的选择是msys。它给你和其他GNU束设施,更多的是让你可以跟随。


PowerShell的select字符串是类似的,它的选项和语义不同,但它仍然很强大。


多年来我每天都在使用ajc grep。我发现的唯一一个主要限制是文件路径限制为255个字符,遇到一个字符就会停止,而不仅仅是发出警告。这很烦人,但不经常发生。

我在64位Windows7Ultimate上使用它,所以它的64位凭据是可以的。


GREP for Windows版

我一直在使用它,幸运的是它仍然可用。它非常快,非常小。


他有cygwin安装机器,把我们的cygwin bin目录的路径,在我们的环境,所以在工程cygwin葡萄一样正常和指挥网络。我们提供所有需要的solves葡萄的时刻。


如果没有一个解决方案是你正在寻找的,也许你可以写一个包装器来找到你真正需要的东西?

不管怎样,findstr还是相当不错的,因此它应该只需要构建一个GUI(如果您需要的话),并提供一些额外的功能(比如将它与find结合起来,以查找包含指定字符串[上面提到的]的文件数)。

当然,这假定您有这样做的要求、时间和倾向!