文本编辑器打开大(巨型,巨大,大)文本文件[关闭]

Posted

技术标签:

【中文标题】文本编辑器打开大(巨型,巨大,大)文本文件[关闭]【英文标题】:Text editor to open big (giant, huge, large) text files [closed] 【发布时间】:2010-09-14 15:26:05 【问题描述】:

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

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

有什么建议吗?

【问题讨论】:

实际上,100+ MB 甚至 1+ GB 的文本文件并不像您想象的那么罕见(即来自繁忙服务器的日志文件)。 偷偷摸摸:不完全是文字。我认为读取文本文件和读取二进制文件的要求有所不同。不过,您可以通过 base64 或 uuencode 传递它。 这应该至少是一个类似的问题,甚至应该像 18 个月前提出的那样链接...***.com/questions/102829/… 我也在寻找这个确切问题的答案,以便阅读我生成的一些巨大的日志文件! @BlairHippo 我也有同样的感觉,当我问一个问题时,我几乎感到紧张,因为很有可能有人会说“关闭这个,它应该进入 WhatExchange” 【参考方案1】:

免费的只读查看器:

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

免费编辑器:

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

内置程序(无需安装):

less (macOS, Linux) – 传统的 Unix 命令行寻呼机工具。让您查看几乎任何大小的文本文件。也可以安装在 Windows 上。 Notepad (Windows) – 大文件的体面,尤其是关闭自动换行。 MORE (Windows) – 这是指 Windows MORE,而不是 Unix more。一个控制台程序,可让您一次查看一个屏幕的文件。

网络浏览者:

readfileonline.com – 另一个 html5 大文件查看器。支持搜索。

付费编辑:

010 Editor(Windows、macOS、Linux)——打开巨型(最大 50 GB)文件。 SlickEdit(Windows、macOS、Linux)——打开大文件。 UltraEdit (Windows, macOS, Linux) – 打开超过 6 GB 的文件,但必须更改配置才能实用:菜单 » 高级 » 配置 » 文件处理 » 临时文件 » 打开没有临时文件的文件.. . EmEditor (Windows) – 可以很好地处理非常大的文本文件(官方最高可达 248 GB,但根据一份报告,最高可达 900 GB)。 BssEditor (Windows) – 处理大文件和很长的行。不需要安装。免费用于非商业用途。

【讨论】:

VIM 或 Emacs...选择你的毒药,两者都会处理你扔给他们的任何文件。我个人更喜欢 Emacs,但两者都可以轻松击败记事本。 Emacs 有一个最大缓冲区大小,取决于底层架构(32 位或 64 位)。我认为在 32 位系统上,大于 128 MB 的文件会出现“超出最大缓冲区大小”错误。 我刚用 561MB 的日志文件尝试了 Notepad++,它说它太大了 @Rafal 有趣!看起来在 64 位上大约是 1024 PB。原因与emacs必须跟踪缓冲区位置(例如点)有关 但要小心,vim 只有在相关文件有足够的换行符时才能工作。我曾经不得不编辑一个 ca. 150 MB 文件,没有任何换行符,由于 vim 无法处理,不得不求助于 gedit。【参考方案2】:

提示和技巧

您为什么使用 editors查看(大)文件?

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

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

Perl

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

例如:

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

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

另一个例子:

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

当“正则表达式一”找到某些内容时开始打印,并在“正则表达式二”找到有趣块的结尾时停止。它可能会找到多个块。筛选输出...

日志解析器

这是您可以使用的另一个有用的工具。引用the Wikipedia article:

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% 以上。我们有一些大文件要在这里和那里调试。

还有更多...

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

【讨论】:

+1,我最近有一些非常大的 xml 文件(+1 GB)需要查看。我在 Windows 上,vim、emacs、notepad++ 和其他几个编辑器都完全被文件卡住了,以至于我的系统在尝试打开文件时几乎无法使用。过了一会儿,我意识到当我只需要 -view- 时,实际上尝试在 -editor- 中打开文件是多么不必要。使用 cygwin(和一些聪明的 grep/less/sed-magic)我很容易找到我感兴趣的部分,并且可以毫不费力地阅读它。 你不需要cygwin花更少的钱,你也可以在windows下使用它:gnuwin32.sourceforge.net/packages/less.htm 这个XML editor 这里也有一个大文件查看器组件,并且也为大文件提供语法着色。这些文件没有完全加载到内存中,因此多 GB 的文档应该不是问题。此外,此工具还可以验证那些大型 XML 文档……在我看来,这是处理大型 XML 数据的最佳方法之一。 好的,我刚刚解决了我自己的问题。 less 自动换行很慢。 less -S 没有自动换行即使在大行上也快如闪电。我又开心了! 很好的答案。我想指出,如果您安装了 Windows 版 Git,您可能也安装了 Git bash,其中包括 less

以上是关于文本编辑器打开大(巨型,巨大,大)文本文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

cmd - 分割大文件

如何在python中拆分一个巨大的文本文件

JSON文件如何编辑?

php file_get_contents函数分段读取大记事本或其它文本文件

oracle dmp文件怎么打开

如何读取大约 2 GB 的文本文件? [复制]