在Windows机器上的文件中搜索文本字符串的最快(准确)方法是什么?


Answers:


11

Notepad ++具有“在文件中查找”选项,该选项位于“搜索”菜单中。这将使您可以搜索文件夹中的多个文件(可以指定文件夹),并且还可以显示每个文件的行号。您可以切换搜索中是否包含子文件夹和隐藏文件夹,还可以使用\ t \ n等进行搜索,并在需要时使用正则表达式进行搜索。

Notepad ++是Windows程序员编辑器(不是IDE),也是开源的。

(我意识到您最有可能听说过notepad ++,但是我只是在这里提到它,作为一个选择,以防您不知道此特定功能,以及以后偶然发现此线程的其他人。

干杯:)


是的,我必须承认,我之前曾使用Notepad ++。
乔恩·凯奇

1
@JonCage在这个线程中有人(sevenforums.com/software/…) ,就像您在说到有用的东西时说“我承认”一样。这是一种非常奇怪的说话方式。您可能想见那个人。也许你的双胞胎。
barlop 2012年

Notepad ++很棒。SciTE等其他程序员的编辑器也具有类似的功能。
TimothyAWiseman


5

Findstr总是为我工作。它可以使用文本*通配符或正则表达式作为搜索字符串。Findstr /?更多


5

在Unix系统上,人们很可能会使用grep来执行此操作,那么为什么不使用Windows Grep?

http://www.wingrep.com/


Windows Grep有时可能会变得不稳定,但这是我使用过的最快的搜索程序。
yakatz 2012年

@yakatz感谢您提到Windows Grep可能存在的不稳定性,我将寻找其他grep / replace工具!
pacoverflow 2014年

wingrep已停产,但是grepwin仍然可用并且运行良好。
techturtle

3

这是Powershell解决方案:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString

-rgci是递归,当然是可选的,因为是两个文件扩展名的过滤器。一个有用的参数Select-String-list,它将仅报告文件中匹配项的第一个实例,而不是为您提供每个文件中匹配项的每次出现。

也许您想立即打开找到匹配项的每个文件?好吧,根据您对默认文件的关联如下,对上述内容进行以下较小更改非常有用:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii


我正要发布同一件事:)
Caleb Jares 2012年

您确定-filter "*.cpp","*.h"接受多个扩展名吗?这应该更读为-include ("*.cpp","*.hpp")
mloskot

2

在对某些软件进行本地化时,我使用DocFetcher在以前翻译的文件中搜索相同的字符串。它是免费和开源的,但是需要首先创建索引。去尝试一下。:-)


1

使用M $提供的“字符串” 。他们几年前从Sysinternals购买了一些非常好的工具。不需要安装,只需将其放在包装盒上并运行其语法即可。易于使用和伟大!



0

如果您对命令行感到满意/使用Linux。我是否建议您为Windows安装grep版本?

cygwin是实现此目的的一种非常方便的方法,它将为您提供完整的Linux环境,并带有bash shell和rxvt终端。否则,如果您只想使用gnuwin32工具,那么您将被Windows cmd.exe提示符所困扰。

微软实际上有自己版本的Unix工具作为下载,但与我尝试使用gnu端口相比,它们似乎相当慢。他们还将使用Windows 8废弃它们。


0

这就是我在Windows注册表中或Windows XP计算机上的文件中搜索文本字符串的方式。假设我想在c:驱动器上的纯文本文件中找到字符串“ Enterprise”,然后将输出写入c:\ windows \ temp中名为search_result.txt的文件中

打开命令提示符,然后键入:

findstr“ Enterprise” c:*。txt> c:\ windows \ temp \ search_result.txt

您搜索的字符串区分大小写。“企业”和“企业”将找不到相同的字符串。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.