这就是这种情况。我目前为我的小型非营利公司运行一个邮件服务器。我的邮件服务器(Merak Mail Server)将日志保存在 .log 文件中,并将邮件保存为 .tmp 文件。本质上,这些只是保存在服务器上的文本文件。
问题是当我将文本放入 Windows 资源管理器上的“包含文本”字段时,它总是会丢失文件并告诉我没有返回结果。然后当我一一搜索文件时(充其量是痛苦的),我找到了我需要的文件。
我对搜索功能的理解不够好,或者我的索引错误。我真的不在乎我需要用什么来搜索文件,即使是第三方应用程序也可以,我只想在一个框中输入一个电子邮件地址并搜索我所有的日志文件或电子邮件文件并找到我要找哪一个。它可以是 Windows Search 或其他东西,只要我能找到完成工作的方法,我就会很高兴。支付解决方案也很好。
提前感谢大家。
我会说给WinGrep一个机会。
如果它们都在一个目录中,我可以看到一个两步过程来帮助你。
第 1 步:命令行
打开 CMD shell 并转到您要查找的目录。然后发出 find 命令:
然后它将在该目录中的所有文件中搜索您要查找的字符串。当它找到一个时,它会给你文件名,如下所示:
这会告诉你要在里面搜索哪个文件。
第 2 步:在文件中搜索
这一步你已经知道了。第一步只是缩小搜索范围。
在命令提示符下使用 findstr !
您可以通过以下两种方式之一进行操作(我相信还有更多方法,但这是我会做的)
安装 Microsoft 桌面搜索,您可以在服务器或工作站上执行此操作并让它为文件编制索引。它应该能够看到它们是文本文件并索引内容。这将是两种方式中较快的一种。这是免费的顺便说一句。
使用 Notepad++ 或 Textpad 等高级文本编辑器并使用文件中的文件选项,该选项将搜索目录中的所有文件。但是当您需要运行搜索时,这将花费更长的时间。Notepad++ 是免费的,Textpad 成本低但可以免费试用。
如果这是您需要经常做的事情,我会选择 1。如果它不经常发生,请尝试 2,看看它是否适合您。
为此,我喜欢 UltraEdit。您可以告诉它搜索目录中的所有文件(或将其限制为某些文件类型或任何其他通配符)以获取您指定的字符串。如果它在多个文件中或在一个文件中多次找到您的文本,它会为您提供它找到的所有实例的列表,然后单击一个会将您带到该文件/位置。
然后使用powershell:
选择字符串 -path c:\mylogfiledir*.log -pattern "我的字符串"
请注意,在 powershell v2 中,您还可以使用 -context 开关来获取找到匹配项的行上方和下方的行
您可以使用ack '一个专门用于大型源代码树的类似 grep 的程序'。Ack 类似于 grep,但用 perl 编写(在 Windows 上运行良好)。这些是它被认为比 grep 更好的原因:
因为这样的事情,我从不使用 Windows 搜索/查找。我通常最终通过一个很好的旧命令提示符进行搜索。结果比搜索/查找 GUI 快 99% 且更准确。
如果您想在结果中进行搜索,您甚至可以将结果通过管道传送到Find 命令中。
不要忘记 Logparser 也可以是一个很好的文本解析器/搜索工具。'TEXTWORD 和 TEXTLINE 输入' 格式和 'CSV 和 TSV 输入' 格式值得运行 logparser -i:INPUTFORMATYOUWISHTOKNOWMOREABOUT -h 'help' 调用。“帮助”文件中也有示例。
我使用特工 Ransack,效果很好。它还将它自己附加到右键单击菜单中,因此您可以右键单击该文件夹并说 Agent Ransack,它会在那里搜索。哦,最棒的是,它是免费的。
我用它来搜索文本文件以及 Windows 中的普通搜索不会搜索的临时文件夹。
希望能帮助到你。