当前位置:  开发笔记 > 编程语言 > 正文

什么是Windows的优秀grep工具?

如何解决《什么是Windows的优秀grep工具?》经验,为你挑选了17个好方法。

有关Windows的grep工具的任何建议?理想情况下可以利用64位操作系统.

我当然知道Cygwin,并且也找到了PowerGREP,但我想知道那里是否有隐藏的宝石?



1> Ray Hayes..:

FINDSTR相当强大,支持正则表达式,并且具有已经在所有Windows机器上的优点.

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
  \    Word position: end of word

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


好的发现它不是grep,正如其他一些评论员指出的那样.但是我甚至都不知道它存在,所以给你好先生发贴它!
Findstr没有完全的RegEx支持.
..原帖不是专门针对RegEx的!
FINDSTR缺少的是仅显示包含字符串的行数的选项.(如grep -c)如果需要,可以使用FIND/C.
如果你想要返回FINDSTR(并且你的模式不是正则表达式),你总是可以通过一些小的重复将两个命令链接在一起:findstr/s".ini"*.rlog | 找到/ c".ini"
FindStr,至少在Windows 7下,使用/ R选项支持正则表达式.

2> Mark Biek..:

根据评论中的建议,我已经开始使用grepWin,它非常棒且免费.


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

我知道你已经提到过了,但是PowerGREP 太棒了.

我最喜欢的一些功能是:

右键单击文件夹以在其上运行PowerGREP

使用正则表达式或文字文本

为要包含和排除的文件指定通配符

搜索和替换

预览模式很不错,因为你可以确保你正在替换你想要的东西.

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

来自同样精彩的人们给你带来了RegexBuddy以及我与他们没有任何关系而超越了他们的东西.(应该注意的是,RegexBuddy包含grep的基本版本(适用于Windows)本身,它的成本远低于PowerGREP.)


其他解决方案

现有的Windows命令

FINDSTR

PowerShell中的Select-String

Windows上的Linux命令实现

Cygwin的

现金

Grep工具带有图形界面

AstroGrep

BareGrep

GrepWin

额外的Grep工具

dnGrep


@Wells - Windows上的普通老*nix grep可以通过Cygwin或GnuWin32免费获得.FindStr和Find也随Windows一起提供.Grep具有出色的GUI,更换能力,集成撤销功能以及许多其他功能......是的......这会让您多花点钱.
@Wells,@ Mike Clark,@ Mark Biek:我认为在发布这个答案时,Windows可能没有很好的免费GUI grep工具,但它已经不再适用了.grepWin具有此答案中列出的所有功能,现在也可能有其他竞争对手.
@Wells,讨厌Windows,因为Grep工具是159美元就像讨厌汽车,因为地垫很贵.
@Wells和upvoters:什么是牛肉?用于Windows的其他几个GREP工具与unix/linux一样免费.事实上,这就是我对Windows生态系统的喜爱 - 如果这是您的主要标准,那么很多免费,而且生态系统通常支持付费开发人员探索扩展的功能,例如使用PowerGREP.PowerGREP可能不是每个人的一杯茶(有时它的UI是压倒性的),但它的复杂性确实有用.
我很想找到一个易于使用的开源grep gui和PowerGREP的全功能,但我还没有找到一个:).我确实安装了Cygwin并使用了grep.

3> 小智..:

GrepWin免费开源(GPL)

在此输入图像描述我一直在使用grepWin,这是由一个tortoisesvn家伙写的.Windows上的工作是......

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


似乎没有命令行界面.
它是免费的,它能够搜索PowerGrep无法正常工作的隐藏目录/文件...
它很好,但它只提供一行上下文,在完成整个搜索之前你无法看到该上下文.
这似乎是一个很好的简单工具.但我需要在文件中的结果,它似乎没有给我选择导出.仅仅因为这个原因,我选择了AstroGrep.

4> VonC..:

2013年7月更新:

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

AstroGrep很棒

它能够向我展示的不仅仅是行搜索(即--context =命令行grep的NUM)是非常宝贵的.
它很快.非常快,即使在使用非SSD驱动器的旧计算机上(我知道,他们曾经使用旋转磁盘做这个硬盘,称为盘片,疯狂吧?)

这是免费的.
它是便携式的(解压缩的简单zip存档).


原始答案2008年10月

替代文字Gnu Grep没事

你可以在这里下载它:( 站点ftp)

所有常见的选择都在这里.

结合gawk和xargs(包括'find',来自GnuWin32),你可以像在Unix上一样编写脚本!

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

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



5> Jay Bazuzi..:

PowerShell的Select-String cmdlet在v1.0中运行良好,但对于v2.0则明显更好.将PowerShell内置到最新版本的Windows中意味着您的技能始终有用,无需先安装.

添加到Select-String的新参数:Select-String cmdlet现在支持新参数,例如:

-Context:这允许您查看匹配行之前和之后的行

-AllMatches:允许您查看一行中的所有匹配项(以前,您只能看到一行中的第一个匹配项)

-NotMatch:相当于grep -vo

-Encoding:指定字符编码

我觉得适宜创建一个功能gcirGet-ChildItem -Recurse .,以智慧来正确地传递参数,以及别名ssSelect-String.所以你写一下:

gcir*.txt | ss foo


我非常喜欢PS中引入的很多功能,但为什么每个命令都必须比一般的COBOL程序更长?
grep -R equivilant的示例:Get-ChildItem -recurse -include*.txt | Select-String -CaseSenstive"SomeString"
@evilcandybag:由于自动完成功能很强,包括参数名称的自动完成功能,输入PowerShell命令行既快又简单,我可以阅读结果.

6> jasonmray..:

它可能不完全属于'grep'类别,但如果没有名为AgentRansack的实用程序,我无法在Windows上使用它.它是一个基于gui的"在文件中查找"实用程序,具有正则表达式支持.右键单击文件夹,点击"搜索..."并查找包含您要查找的内容的文件非常简单.非常快.



7> John Sheehan..:

Baregrep(Baretail也很好)


它在Windows 7 Pro 64bit上工作正常.

8> jj...:

你问这个问题已经有几年了,但我推荐AstroGrep(http://astrogrep.sourceforge.net).

它是免费的,开源的,并且具有简单的界面.我一直用它来搜索代码.



9> jslatts..:

PowerShell已被提及几次.以下是如何以实际的方式使用它:

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

它递归搜索当前目录树中的所有文本文件SomeString以区分大小写.

更好的是,运行这个:

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

然后做:

pgrep SomeStringToSearch *.txt

然后要真正使它变得神奇,将功能别名添加到PowerShell配置文件中,您几乎可以消除没有正确命令行工具的痛苦.



10> cjm..:

ack在Windows上运行良好(如果你有Perl).对于许多用途我发现它比grep更好.



11> Corey Goldbe..:

Cygwin包括grep.如果安装Cygwin,所有GNU工具和Unix的东西在Windows上运行良好.

http://www.cygwin.com/



12> Daniel Magn..:

Git on Windows = grep in cmd.exe

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

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

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



13> stankovski..:

dnGREP是Windows的开源grep工具.它支持许多很酷的功能,包括:

撤消替换

能够通过右键单击资源管理器中的文件夹进行搜索

提前搜索选项,如语音搜索和xpath

在PDF文件,档案和Word文档中搜索

恕我直言,它有一个漂亮和干净的界面:)



14> Tom Kidd..:

我总是使用WinGREP,但我遇到了问题,不放弃文件.


我已经使用了wingrep好几年了,除了目录选择框太小之外,它很棒
GUI太赢了3.11;(

15> Milan Babušk..:

那么,在GNU grep的Windows端口旁边:

http://gnuwin32.sourceforge.net/

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



16> 小智..:

我已经成功地为Win32使用了GNU实用程序很长一段时间,它有一个很好的grep以及tail和win32的其他方便的gnu工具.我避免使用打包的shell,只需在win32命令提示符下使用可执行文件即可.

打包的Tail也是一个非常好的小应用程序.



17> 小智..:

我是Aba Search and Replace的作者.就像PowerGREP一样,它支持正则表达式,保存模式以供进一步使用,撤消替换,使用HTML/CSS/JS/PHP的语法高亮预览,不同的编码,包括UTF-8和UTF-16.

与PowerGREP相比,GUI 不那么混乱.当您输入模式(增量搜索)时, Aba立即开始搜索,因此您可以尝试使用正则表达式并立即查看结果.

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

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有