在大文件中search文本的工具

我正在寻找一个工具来find一个大小为4 GB的文件中包含search文本的行

当你使用* nix的时候,你也可以使用split来获得更小的文件,然后用你喜欢的任何东西进行parsing,比如grep,awk,…

如果你有PowerShell的安装,你可以使用

select-string -pattern <your_string> -path <path_to_file>

它可能不会很快,但不会像find或findstr那样窒息。

使用grep。 没有什么会比较快的。

不是免费的,但如果这是一个文本文件,那么BareTailPro可能会做这个工作。 我用它来search日志文件中太大而不适合内存的文本。 一个好处是,它不只是显示文本,而是允许你跳转到文本文件,所以你可以看到命中之前和之后的行。

如果您经常这样做,并且文件被分解为逻辑行,则可以将其加载到Splunk中并从那里进行search。 它会做索引为你快(呃)。

我会在* nix上使用grep,并且在Windows上使用更高端的文本编辑器(例如Notepad ++)。

这取决于应用程序,所需的响应时间,以及您愿意做什么来实现这些目标。

最近,我正在使用10+ GB,超过5000万行文本文件,并且需要在每行中search特定的string。 标准的Unix工具“grep”诀窍,但花了很长的时间(几分钟)。 我把文本导入到一个postgreslq数据库(这是一个CSV文件,很容易导入),并且一旦索引我需要search的密钥,我花了1秒钟才find我的logging。

当然,我的工作站是单核的,只有4GB内存,4年的2GHz CPU,以及使用5年以上的消费者PATA硬盘的重头文件系统(ZFS)。 你的里程肯定会有所不同。 不过,这两种方法之间的时差是惊人的。

如果您的数据是自由格式的文本,您可能仍然会考虑导入到支持全文search的DB和适当的索引以支持此类search。

即使你有RAM来整个文件caching和一个快速的机器,做这个大小的文件的线性search将是时间低效率,取决于(再​​次)应用程序。

在Windows CMD提示符处,有两个命令FINDFINDSTR 。 他们可能会呛一个文件大小或非常缓慢,但你已经有了它们。

键入help findstrhelp find文档。