【问题标题】:Text editor which can directly search compressed text files? (only uncompressing them in memory)可以直接搜索压缩文本文件的文本编辑器? (仅在内存中解压缩它们)
【发布时间】:2021-11-19 20:34:08
【问题描述】:

我有 20 GB 的(未压缩的)日志文件。它们最初被压缩(作为每个日志文件一个 70 KB 的 .gz 文件),总大小约为 700 MB。我需要浏览和搜索它们以诊断一些问题。我不确切知道我在搜索什么,我可能需要快速浏览几千次点击以进行任何我尝试的搜索。

我尝试通过解压缩所有文件然后使用 Notepad++ 或 Visual Studio 搜索它们来做到这一点。问题是搜索速度非常慢,并且给硬盘带来了很大的负担。我假设每次搜索都需要从磁盘读取全部 20 GB。

如果有一个文本编辑器(或 Notepad++ 插件?)可以在 .gz 文件中搜索而不将它们解压缩到磁盘,那么可能会更好。 700 MB 的 .gz 文件可以轻松放入系统缓存中,我认为解压缩内存中的每个文件会比从磁盘读取未压缩文件快得多。

我想我的替代方案是一次只处理几场演出,这样所有演出都有机会被缓存,但这很不方便。感谢您的建议。

【问题讨论】:

  • 直接在压缩文件中搜索可能很难找到(尽管有可能),也许寻找一个不加载整个文件的编辑器。例如,总指挥官 (ghisler.com/download.htm) 有一个很好的内置十六进制查看器/编辑器 (F3),可以在几秒钟内加载大文件并具有搜索功能。
  • 谢谢施奈德。但问题是编辑器必须从磁盘读取整个文件才能搜索整个文件。由于我正在搜索 20 GB 的文本,因此需要从磁盘读取 20 GB。
  • 您需要文本编辑器还是文本查看器
  • @liori - 查看器。我说编辑是因为观众往往也是编辑。

标签: text-editor


【解决方案1】:

来自cygwinzless 应该可以做到这一点。

【讨论】:

  • zgrep 应该也能做到这一点。
【解决方案2】:

gunzipgrep 的组合可以做到这一点:

gunzip -c *.gz | grep "Search for something"

此处提供本机 Windows 版本:

http://unxutils.sourceforge.net/

【讨论】:

  • 似乎 zgrep 做了同样的事情。这比 zgrep 有优势吗?
  • 本机 Windows 工具集不包括 zgrep。您提到的其他应用表明您使用的是 Windows。
  • 看来cygwin确实有zgrep。
  • @jthg,我个人更喜欢原生工具而不是抽象层,但任何一种解决方案都可以正常工作。
【解决方案3】:

jEdit 支持在压缩文本文件中打开/搜索。

您可以执行目录搜索并在过滤器中使用*.gz。

结果将显示在 HyperSearch 面板中。 点击结果时,jEdit会在编辑器面板中打开解压后的文件内容,并跳转到找到文本的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2019-03-23
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多