![在文本文件内搜索](https://linux22.com/image/485760/%E5%9C%A8%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E5%86%85%E6%90%9C%E7%B4%A2.png)
情况是这样的。我目前为我的一家小型非营利公司运行一个邮件服务器。我的邮件服务器(Merak Mail Server)将日志保存在 .log 文件中,将邮件保存为 .tmp 文件。本质上,这些只是保存在服务器上的文本文件。
问题是,当我在 Windows 资源管理器的“包含文本”字段中输入文本时,它总是漏掉文件并告诉我没有返回结果。然后,当我逐个搜索文件(最多是痛苦的)时,我找到了我需要的文件。
是不是我对搜索功能了解不够,或者我索引错误。我真的不在乎需要用什么来搜索文件,即使是第三方应用程序对我来说也行,我只想在框中输入电子邮件地址,搜索我的所有日志文件或电子邮件文件,找出我要找的文件。可以是 Windows Search 或其他东西,只要我能找到完成工作的方法,我就会很高兴。付费解决方案也很好。
提前感谢大家。
答案1
我想说温格雷普一枪。
答案2
如果它们都在一个目录中,我可以看到一个两步过程可以帮助您。
步骤 1:命令行
打开 CMD shell 并转到您要查找的目录。然后发出 find 命令:
F:\目录> 查找“[电子邮件保护]“*
然后它会搜索该目录中的所有文件以查找您要查找的字符串。找到后,它会为您提供文件名,如下所示:
---------- MSGTRK20090603-1.LOG 2009-06-03T09:11:37.486Z,192.168
它将告诉您去搜索哪个文件。
步骤 2:在文件内搜索
这一步你已经知道了。第一步只是缩小你的搜索范围。
答案3
使用 findstr在命令提示符下!
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.
/M Prints only the filename if a file contains a match.
etc.
Example:
C:\>findstr /s /m [email protected] c:\temp\*.txt c:\temp\*.log
c:\temp\t\t.log
c:\temp\t\t.txt
c:\temp\t\tt.log
c:\temp\tt.txt
Redirect to a file and open in notepad:
C:\>findstr /s /m [email protected] c:\temp\*.txt c:\temp\*.log > c:\temp\myemail.txt & notepad c:\temp\myemail.txt
答案4
我喜欢 UltraEdit 的这个功能。您可以让它搜索目录中的所有文件(或将其限制为某些文件类型或任何其他通配符)以查找您指定的字符串。如果它在多个文件中或在一个文件中多次找到您的文本,它会为您提供找到的所有实例的列表,单击其中一个实例即可转到该文件/位置。