协慌网

登录 贡献 社区

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

我的意思是 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,但它仍然支持搜索(使用正则表达式),打印,十六进制编辑器模式和设置。

免费编辑:

  • VimEmacs (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 的原因!我们都需要更多关于处理大量数据的建议......