协慌网

登录 贡献 社区

文本编辑器打开大(巨大,巨大,大)文本文件

我的意思是 100 多 MB 大; 这样的文本文件可以推动编辑的信封。

我需要查看一个大型 XML 文件,但如果编辑器有错误则无法查看。

有什么建议?

答案

VS Code (Windows,macOS,Linux) - 免费和开源的 GUI。编辑了一个 3.6 GB 的 JSON 文件,在一分钟内加载。您必须有足够的 RAM 来加载文件。

免费只读查看器:

  • glogg (Windows,macOS,Linux) - 确认可以处理多 GB 文件。它的主要功能是正则表达式搜索。有标签,直接从磁盘读取文件,可以观看 / 跟踪文件,并允许用户标记行。
  • LogExpert (Windows) - “替代tail的 GUI。” 支持文件跟踪,搜索,过滤,可配置突出显示,插件和外部工具。
  • 大文本文件查看器 (Windows) - 极简主义且具有非常小的可执行文件大小。支持拆分视图,文本主题自定义,正则表达式搜索和文件跟踪。
  • Lister (Windows) - 更小巧简约。它是一个可执行文件,只有 500 KB,但它仍然支持搜索(使用正则表达式),打印,十六进制编辑器模式和设置。

免费编辑:

  • Vim和Emacs (Windows,macOS,Linux) - 经典的 Unix 编辑器。陡峭的学习曲线,但残酷有效。它们具有可以调整的设置,以使它们更快。
  • 大文件编辑器 (Windows) - 打开和编辑 TB + 文件,支持 Unicode,使用少量内存,具有特定于 XML 的功能,并包含二进制模式。
  • HxD (Windows) - 十六进制编辑器,而不是文本编辑器; 但它非常快速有用。
  • GigaEdit (Windows) - 支持搜索,字符统计和字体自定义。但它有问题 - 对于大文件,它只允许覆盖字符,而不是插入它们; 它不认为 LF 是线路终结器,只有 CRLF; 而且它很慢。

内置程序(无需安装):

  • less (macOS,Linux) - 传统的 Unix 命令行寻呼工具。允许您查看几乎任何大小的文本文件。也可以安装在 Windows 上。
  • 记事本 (Windows) - 体现大文件,特别是关闭自动换行功能。
  • MORE (视窗) - 这是指 Windows 的MORE ,而不是 Unix 的more 。一个控制台程序,允许您一次查看一个文件,一个屏幕。

网络观众:

  • htmlpen.com - 可以打开和语法高亮 TB + 文件。允许编辑,但非常大的文件除外。支持搜索,正则表达式和导出。
  • readfileonline.com - 另一个 HTML5 大文件查看器。支持搜索。

付费编辑:

  • 010 编辑器 (Windows,macOS,Linux) - 打开巨型(高达 50 GB)文件。
  • SlickEdit (Windows,macOS,Linux) - 打开大文件。
  • UltraEdit (Windows,macOS,Linux) - 打开超过 6 GB 的文件,但必须更改配置才能实现:菜单 » 高级 » 配置 » 文件处理 » 临时文件 » 打开没有临时文件的文件...
  • EmEditor (Windows) - 很好地处理非常大的文本文件(正式高达 248 GB,但根据一份报告高达 900 GB)。

最后,您是否尝试使用常规编辑器打开大文件?有些编辑器实际上可以处理相当大的文件。特别是, Notepad ++ (Windows)和Sublime Text (Windows,macOS,Linux)支持 2 GB 范围内的文件。

技巧和窍门

减

你为什么要使用编辑器来查看 (大)文件?

在 * nix 或Cygwin 下 ,只需使用less 。 (有一句名言 - “少即多,多或少” - 因为 “less” 取代了早期的 Unix 命令 “more”,另外你可以向上滚动。)在 less 下搜索和导航非常类似于 Vim,但是没有使用交换文件和少量 RAM。

有一个 GNU 的 Win32 端口少。请参阅上面答案的 “更少” 部分。

Perl 的

Perl 适用于快速脚本,它的.. (范围触发器)运算符提供了一个很好的选择机制来限制你必须跋涉的问题。

例如:

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less

这将提取从 100 万行到 200 万行的所有内容,并允许您手动筛选输出更少。

另一个例子:

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less

当 “正则表达式 1” 找到某些内容时,这将开始打印,当 “正则表达式 2” 找到有趣块的末尾时停止打印。它可能会找到多个块。筛选输出......

LOGPARSER

这是您可以使用的另一个有用的工具。引用维基百科的文章 :

logparser是一个灵活的命令行实用程序,最初由 Microsoft 员工 Gabriele Giuseppini 编写,用于自动化 IIS 日志记录的测试。它旨在与 Windows 操作系统一起使用,并包含在 IIS 6.0 Resource Kit Tools 中。 logparser 的默认行为类似于 “数据处理管道”,通过在命令行上获取 SQL 表达式,并输出包含 SQL 表达式匹配项的行。

Microsoft 将 Logparser 描述为一个功能强大的多功能工具,它提供对基于文本的数据(如日志文件,XML 文件和 CSV 文件)的通用查询访问,以及 Windows 操作系统上的关键数据源,如事件日志,注册表,文件系统和 Active Directory。输入查询的结果可以在基于文本的输出中自定义格式化,也可以持久保存到更多专业目标,如 SQL,SYSLOG 或图表。

用法示例:

C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line > 1000 and line < 2000"
C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line like '%pattern%'"

尺寸的相对性

100 MB 不是太大。 3 GB 变得有点大。我曾经在一家印刷和邮件工厂工作,创造了约 2%的美国头等邮件。我作为技术主管的系统之一约占邮件的 15%以上。我们有一些大文件可以在这里和那里进行调试。

和更多...

您可以在此处添加更多工具和信息。这个答案是社区 wiki 的原因!我们都需要更多关于处理大量数据的建议......