用于打开大(巨型、巨大、大)文本文件的文本编辑器 [已关闭]

Text editor to open big (giant, huge, large) text files [closed]

提问人: 提问时间:10/2/2008 最后编辑:6 revs, 5 users 56%Dave Jarvis 更新时间:8/12/2023 访问量:2052729

问:

这个问题的答案是社区的努力。编辑现有答案以改进此帖子。它目前不接受新的答案或互动。

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

我需要查看一个大的 XML 文件,但如果编辑器有问题,我就不能了。

有什么建议吗?

Windows XML 文本编辑器 大文件

评论

166赞 Anders Sandvig 12/20/2008
实际上,100+ MB甚至1 + GB的文本文件并不像您想象的那么罕见(即来自繁忙服务器的.log日志文件)。
15赞 Joey 8/16/2009
鬼鬼祟祟:不完全是文字。我认为读取文本文件和读取二进制文件的要求有些不同。不过,您可以通过 base64 或 uuencode 传递它。
2赞 ONDEV 1/19/2012
这至少应该是一个类似的问题,甚至与 18 个月前被问到的问题有关......stackoverflow.com/questions/102829/......
1赞 HorseloverFat 7/21/2012
我也在寻找这个确切问题的答案,以便阅读我生成的一些巨大的日志文件!
1赞 Rodolfo 12/18/2013
@BlairHippo我也有同样的感觉,但在问问题时我几乎很紧张,因为很有可能有人会说“关闭它,它应该进入 WhateverExchange”

答:

1633赞 45 revs, 29 users 29%MultiplyByZer0 #1

免费只读查看器:

  • 大文本文件查看器 (Windows) – 完全可自定义的主题(颜色、字体、自动换行、选项卡大小)。支持水平和垂直分割视图。还支持文件跟踪和正则表达式搜索。非常快速、简单,并且可执行体积小。
  • klogg (Windows, macOS, Linux) – glogg 的一个维护分支。它的主要特点是正则表达式搜索。它支持监控文件更改(如)、书签、使用不同颜色突出显示模式,并内置了严重的优化。但从UI的角度来看,它是相当小的。tail
  • LogExpert (Windows) – “GUI 替代品。”它实际上是一个日志文件分析器,而不是一个大型文件查看器,在一次测试中,它需要 10 秒和 700 MB 的 RAM 来加载 250 MB 的文件。但它的杀手级功能是列形器(解析 CSV、JSONL 等格式的日志并以电子表格格式显示)和荧光笔(用某些颜色显示带有某些单词的行)。还支持文件关注、选项卡、多文件、书签、搜索、插件和外部工具。tail
  • Lister (Windows) – 非常小巧和极简主义。它是一个可执行文件,只有 500 KB,但它仍然支持搜索(使用正则表达式)、打印、十六进制编辑器模式和设置。

免费编辑:

  • 您的常规编辑器或 IDE。现代编辑器可以处理令人惊讶的大文件。特别是,Vim (Windows、macOS、Linux)、Emacs (Windows、macOS、Linux)、Notepad++ (Windows)、Sublime Text (Windows、macOS、Linux) 和 VS Code (Windows、macOS、Linux) 支持大 (~4 GB) 文件,前提是您有 RAM。
  • 大文件编辑器 (Windows) – 打开和编辑 TB+ 文件,支持 Unicode,使用很少的内存,具有特定于 XML 的功能,并包括二进制模式。
  • GigaEdit (Windows) – 支持搜索、字符统计和字体自定义。但它有问题——对于大文件,它只允许覆盖字符,而不允许插入它们;它不尊重 LF 作为行终止符,只尊重 CRLF;而且速度很慢。

内置程序(无需安装):

  • less (macOS, Linux) – 传统的 Unix 命令行寻呼工具。允许您查看几乎任何大小的文本文件。也可以安装在 Windows 上。
  • 记事本 (Windows) – 对于大文件来说还不错,尤其是在关闭自动换行的情况下。
  • MORE (Windows) – 这是指 Windows ,而不是 Unix 。一个控制台程序,允许您一次查看一个屏幕的文件。MOREmore

网络查看器:

付费编辑/观众:

  • 010 编辑器(Windows、macOS、Linux) – 打开巨型(最大 50 GB)文件。
  • SlickEdit (Windows, macOS, Linux) – 打开大文件。
  • UltraEdit(Windows、macOS、Linux) – 打开超过 6 GB 的文件,但必须更改配置才能使其实用: 菜单 » 高级 » 设置 » 文件处理 » 临时文件 » 打开没有临时文件的文件...
  • EmEditor (Windows) – 可以很好地处理非常大的文本文件(官方最高可达 16 TB)。搜索和替换的速度非常快。免费版本可供个人使用。
  • BssEditor (Windows) – 处理大文件和很长的行。不需要安装。免费用于非商业用途。
  • loxx (Windows) – 支持文件跟踪、突出显示、行号、大文件、正则表达式、多个文件和视图等等。免费版不能:处理正则表达式、过滤文件、同步时间戳和保存更改的文件。

评论

63赞 Mike Stone 10/2/2008
VIM 或 Emacs...选择你的毒药,两者都会处理你扔给他们的任何文件。我个人更喜欢 Emacs,但两者都会毫不费力地击败记事本。
27赞 Rafał Dowgird 5/8/2009
Emacs 有一个最大的缓冲区大小,取决于底层架构(32 位或 64 位)。我认为在 32 位系统上,您在大于 128 MB 的文件上出现“超出最大缓冲区大小”错误。
106赞 barfoon 6/2/2009
我刚刚尝试了带有 561MB 日志文件的 Notepad++,它说它太大了
11赞 baudtack 7/2/2009
@Rafal 有趣!看起来在 64 位上它是 ~1024 PB。原因与 emacs 必须跟踪缓冲区位置(例如点)这一事实有关
88赞 Benno 1/30/2010
但要小心,vim 只有在有问题的文件有足够的换行符时才会起作用。我曾经不得不编辑一个大约 150 MB 的文件,没有任何换行符,并且不得不求助于 gedit,因为 vim 无法处理它。
214赞 7 revs, 5 users 45%MultiplyByZer0 #2

技巧和窍门

为什么你使用编辑器一个(大)文件?

在 *nix 或 Cygwin 下,只需用。(有一句名言——“少即是多,多或少”——因为“less”取代了早期的 Unix 命令“more”,并增加了可以向上滚动的附加功能。在less下搜索和导航与Vim非常相似,但没有交换文件,使用的RAM也很少。

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

Perl的

Perl 非常适合快速编写脚本,它的(范围触发器)运算符提供了一个很好的选择机制,可以限制你必须涉足的 crud。..

例如:

$ 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 是一个灵活的命令行实用程序,最初由 Microsoft 员工 Gabriele Giuseppini 编写,用于自动执行 IIS 日志记录测试。它旨在与 Windows 操作系统一起使用,并包含在 IIS 6.0 资源工具包工具中。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+%。我们有一些大文件要在这里和那里进行调试。

还有更多...

请随时在此处添加更多工具和信息。这个答案是社区维基是有原因的!我们都需要更多关于处理大量数据的建议......

评论

9赞 wasatz 4/23/2010
+1,我最近有一些非常大的 xml 文件(+1 GB)需要查看。我在 Windows 上,vim、emacs、notepad++ 和其他几个编辑器都完全窒息了文件,以至于我的系统在尝试打开文件时几乎无法使用。过了一会儿,我意识到当我只需要查看文件时,实际尝试在编辑器中打开文件是多么没有必要。使用 cygwin(以及一些聪明的 grep/less/sed-magic),我很容易找到我感兴趣的部分,并且可以毫不费力地阅读它。
8赞 ChristophK 11/2/2011
您不需要 Cygwin,您也可以在 Windows 下使用它: gnuwin32.sourceforge.net/packages/less.htm
2赞 lichtfusion 4/21/2013
这里的这个XML编辑器也有一个大文件查看器组件,并且也为大文件提供语法着色。这些文件不会完全加载到内存中,因此多 GB 文档应该不是问题。此外,这个工具还可以验证那些大的XML文档......在我看来,这是处理大量XML数据的最佳方法之一。
10赞 Andy Brown 7/20/2015
好的,所以我只是解决了我自己的问题。 使用自动换行很慢。 没有自动换行,即使在大行上也能快如闪电。我又高兴了!lessless -S
9赞 transistor1 6/24/2016
很好的答案。我想指出的是,如果您安装了 Git for Windows,您可能还安装了 Git bash,其中包括 .less