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

Yuv*_*uvi 1023 xml windows text-editor editor large-files

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

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

有什么建议?

Nic*_*erg 1323

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

免费只读查看器:

  • glogg(Windows,macOS,Linux) - 确认可以处理多GB文件.它的主要功能是正则表达式搜索.有标签,直接从磁盘读取文件,可以观看/跟踪文件,并允许用户标记行.
  • LogExpert(Windows) - "GUI的替代品tail." 支持文件跟踪,搜索,过滤,可配置突出显示,插件和外部工具.
  • 大文本文件查看器(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) - 体现大文件,特别是关闭自动换行功能.
  • 更多(Windows) - 这是指WindowsMORE,而不是Unixmore.一个控制台程序,允许您一次查看一个文件,一个屏幕.

网络观众:

  • 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范围内的文件.

  • 我刚刚尝试使用带有561MB日志文件的Notepad ++,它说它太大了 (79认同)
  • 但是要小心,只要有问题的文件有足够的换行符,vim就会起作用.我曾经不得不编辑一个ca. 没有任何换行符的150 MB文件,并且不得不求助于gedit,因为vim无法处理它. (76认同)
  • VIM,或Emacs ......挑选你的毒药,两者都会处理你扔给它们的任何文件.我个人更喜欢Emacs,但两者都会打败记事本,而不是打嗝. (57认同)
  • Emacs具有最大缓冲区大小,具体取决于底层架构(32位或64位).我认为在32位系统上,大于128 MB的文件会出现"超出最大缓冲区大小"错误. (25认同)
  • @Rafal很有意思!看起来在64位上它是~1024 PB.原因与emacs必须跟踪缓冲区位置(例如点)的事实有关 (9认同)
  • 我尝试了所有,gVim吮吸它甚至没有告诉你它正在加载文件 - 永远加载文件(只有200k,500万行).SlickEdit在大约3秒内打开整个文件.获得试用许可证的是PIA.感谢您列出这些内容. (7认同)
  • 如果您打算使用(g)vim然后提高性能,您可能需要关闭一些功能,如语法高亮,交换文件和撤消.请参阅http://vim.wikia.com/wiki/Faster_loading_of_large_files,http://vim.wikia.com/wiki/VimTip611和http://www.vim.org/scripts/script.php?script_id=1506. (5认同)
  • 我认为 VS Code 是一个不错的选择。免费和开源。刚刚添加到列表中。 (4认同)
  • 无法在1.6GB文件中使用任何这些文件,特别是gVim或我能找到的任何其他Vim for Windows.不得不使用filesplitter将其分成100MB块然后我使用EditPlus来查看它们.旧的Edit.com(DOS)可以处理大文件(几百MB)但在64位窗口中不可用. (3认同)
  • 010Editor成功打开了我的3.3GB MySQL数据库转储. (3认同)
  • 使用大文本查看器和HxD的组合.LTV用于良好的文本视图和行搜索,而HxD用于实际编辑+搜索和替换. (3认同)
  • 我使用Hxd打开大文件。它对我非常有用,并具有许多其他功能。我可以在不到一秒钟的时间内用它打开并查看整个硬盘驱动器(约200 GB)。滚动浏览和编辑文件也非常流畅。 (3认同)
  • 我想要一个mmap()s文件的编辑器,只读取我正在查看的部分...甚至gvim似乎首先将整个内容加载到内存中,甚至调整窗口大小时它会认为... (2认同)
  • "但要小心,只要有问题的文件有足够的换行符,vim就会起作用." @Benno,这是vim中的配置设置,而不是限制.你可以这样改变它:`:set display + = lastline`.不过,将它作为默认值有点奇怪. (2认同)
  • 大文本文件查看器能够毫无问题地打开 22GB 的文件。 (2认同)
  • 使用大文本文件查看器,我刚刚打开了一个 30gb 的文件,没有问题。不过,找到一个特定的关键字大约需要 5 分钟。 (2认同)
  • **Emeditor**快速打开"高达248 GB的限制(或21亿行)"http://www.emeditor.com/text-editor-features/large-file-support/files-up-to-248gb /对于csv文件,还有**Delimit**("打开数据文件最多20亿行,200万列大!")http://delimitware.com/ (2认同)
  • VSCode 不再打开大型文本文件。 (2认同)

Rob*_*rog 187

技巧和窍门

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

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

有一个GNU的Win32端口少.请参阅上面答案的"更少"部分.

Perl的

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

例如:

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less
Run Code Online (Sandbox Code Playgroud)

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

另一个例子:

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less
Run Code Online (Sandbox Code Playgroud)

当"正则表达式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%'"
Run Code Online (Sandbox Code Playgroud)

尺寸的相对性

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

和更多...

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

  • 你不需要cygwin,你也可以在windows下使用它:http://gnuwin32.sourceforge.net/packages/less.htm (8认同)
  • 好的,我只是解决了自己的问题.用字包裹的`less`很慢.没有自动换行的`less -S`即使在大线上也是闪电般快速的.我又开心了! (8认同)
  • +1,我最近有一些非常庞大的xml文件(+1千兆字节),我需要看一下.我在Windows上,vim,emacs,notepad ++和其他几个编辑器在文件上完全被呛到了我的系统在尝试打开文件时几乎无法使用的程度.过了一会儿,我意识到实际尝试在-editor中打开文件是多么不必要 - 当我只需要查看它时.使用cygwin(以及一些聪明的grep/less/sed-magic)我很容易找到我感兴趣的部分并且可以毫不费力地阅读它. (7认同)
  • 很好的答案.我想要注意的是,如果你安装了Git for Windows,你可能也有Git bash,其中包括`less`. (6认同)
  • 这里的[XML编辑器](http://www.xml-tools.com)也有一个大文件查看器组件,并且还为大文件提供语法着色.文件未完全加载到内存中,因此多GB文档应该不是问题.此外,该工具还可以验证那些大型XML文档......在我看来,这是处理大量XML数据的最佳方法之一. (2认同)