在文本文件内搜索

在文本文件内搜索

情况是这样的。我目前为我的一家小型非营利公司运行一个邮件服务器。我的邮件服务器(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 的这个功能。您可以让它搜索目录中的所有文件(或将其限制为某些文件类型或任何其他通配符)以查找您指定的字符串。如果它在多个文件中或在一个文件中多次找到您的文本,它会为您提供找到的所有实例的列表,单击其中一个实例即可转到该文件/位置。

相关内容