Editor de texto para abrir archivos de texto grandes (gigantes, enormes, grandes) [cerrado]

1023

Me refiero a más de 100 MB; dichos archivos de texto pueden empujar el sobre de los editores.

Necesito mirar a través de un archivo XML grande, pero no puedo si el editor tiene errores.

¿Alguna sugerencia?

Dave Jarvis
fuente
166
En realidad, los archivos de texto de más de 100 MB o incluso 1 GB no son tan poco comunes como podría pensar (es decir, archivos de registro de servidores ocupados).
Anders Sandvig el
15
Astucia: Y no exactamente texto. Creo que los requisitos de leer archivos de texto y leer archivos binarios difieren un poco. Sin embargo, puede pasarlo a través de base64 o uuencode.
Joey
2
Esta debería ser al menos una pregunta similar o incluso vinculada como se hizo 18 meses antes ... stackoverflow.com/questions/102829/…
ONDEV
1
¡También estaba buscando la respuesta a esta pregunta exacta para leer algunos archivos de registro enormes que he generado!
HorseloverFat
1
@BlairHippo Siento lo mismo, estoy casi nervioso cuando hago una pregunta porque hay muchas posibilidades de que alguien diga "Cierra esto, debería ir en Cualquier Intercambio"
Rodolfo

Respuestas:

1387

Visores gratuitos de solo lectura:

  • Visor de archivos de texto grande (Windows): temas totalmente personalizables (colores, fuentes, ajuste de texto, tamaño de pestaña). Admite vista dividida horizontal y vertical. También admite el seguimiento de archivos y la búsqueda de expresiones regulares. Muy rápido, simple y tiene un tamaño pequeño ejecutable.
  • klogg (Windows, macOS, Linux): una bifurcación mantenida de glogg , su característica principal es la búsqueda de expresiones regulares. También puede ver archivos, permite al usuario marcar líneas y tiene incorporadas optimizaciones serias. Pero desde el punto de vista de la interfaz de usuario, es feo y torpe.
  • LogExpert (Windows): "Un reemplazo de GUI paratail". Es realmente un analizador de archivos de registro, no un visor de archivos grandes, y en una prueba requirió 10 segundos y 700 MB de RAM para cargar un archivo de 250 MB. Pero sus características principales son el columnizador (análisis de registros que están en CSV, JSONL, etc. y se muestran en formato de hoja de cálculo) y el marcador (muestra líneas con ciertas palabras en ciertos colores). También admite el seguimiento de archivos, pestañas, archivos múltiples, marcadores, búsqueda, complementos y herramientas externas.
  • Lister (Windows): muy pequeño y minimalista. Es un ejecutable, de apenas 500 KB, pero aún admite búsquedas (con expresiones regulares), impresión, un modo de editor hexadecimal y configuraciones.
  • loxx (Windows): admite el seguimiento de archivos, resaltado, números de línea, archivos enormes, expresiones regulares, múltiples archivos y vistas, y mucho más. La versión gratuita no puede: procesar expresiones regulares, filtrar archivos, sincronizar marcas de tiempo y guardar archivos modificados.

Editores gratuitos:

  • Su editor habitual o IDE. Los editores modernos pueden manejar archivos sorprendentemente grandes. En particular, Vim (Windows, macOS, Linux), Emacs (Windows, macOS, Linux), Notepad ++ (Windows), Sublime Text (Windows, macOS, Linux) y VS Code (Windows, macOS, Linux) admiten grandes (~ 4 GB), suponiendo que tenga la RAM.
  • Editor de archivos grandes (Windows): abre y edita archivos TB +, admite Unicode, usa poca memoria, tiene características específicas de XML e incluye un modo binario.
  • GigaEdit (Windows): admite búsquedas, estadísticas de caracteres y personalización de fuentes. Pero tiene errores: con archivos grandes, solo permite sobrescribir caracteres, no insertarlos; no respeta LF como un terminador de línea, solo CRLF; y es lento

Programas incorporados (no requiere instalación):

  • less (macOS, Linux): la herramienta tradicional de buscapersonas de línea de comandos de Unix. Le permite ver archivos de texto de prácticamente cualquier tamaño. También se puede instalar en Windows.
  • Bloc de notas (Windows): decente con archivos grandes, especialmente con el ajuste de texto desactivado.
  • MÁS (Windows): se refiere a WindowsMORE, no a Unixmore. Un programa de consola que le permite ver un archivo, una pantalla a la vez.

Visores web:

Editores pagados:

  • 010 Editor (Windows, macOS, Linux): abre archivos gigantes (de hasta 50 GB).
  • SlickEdit (Windows, macOS, Linux): abre archivos grandes.
  • UltraEdit (Windows, macOS, Linux): abre archivos de más de 6 GB, pero la configuración debe cambiarse para que esto sea práctico: Menú »Avanzado» Configuración »Manejo de archivos» Archivos temporales »Abrir archivo sin archivo temporal ...
  • EmEditor (Windows): maneja muy bien archivos de texto muy grandes (oficialmente hasta 248 GB, pero hasta 900 GB según un informe).
MultiplyByZer0
fuente
6060
VIM, o Emacs ... elige tu veneno, ambos manejarán cualquier archivo que les arrojes. Personalmente, prefiero Emacs, pero ambos vencerán al bloc de notas sin tanto contratiempo.
Mike Stone
25
Emacs tiene un tamaño máximo de búfer, que depende de la arquitectura subyacente (32 o 64 bits). Creo que en los sistemas de 32 bits se obtiene el error "tamaño máximo de búfer excedido" en archivos de más de 128 MB.
Rafał Dowgird
82
Acabo de probar Notepad ++ con un archivo de registro de 561 MB y dijo que era demasiado grande
Barfoon
99
@Rafal ¡Interesante! Parece que en 64 bits es ~ 1024 petabytes. La razón tiene que ver con el hecho de que emacs tiene que rastrear las posiciones del búfer (como el punto)
baudtack
79
Pero tenga cuidado, vim solo funcionará mientras los archivos en cuestión tengan suficientes saltos de línea. Una vez tuve que editar un ca. 150 MB sin saltos de línea, y tuve que recurrir a gedit porque vim no podía manejarlo.
Benno
192

Consejos y trucos

Menos

¿Por qué estás usando editores para solo mirar un archivo (grande)?

Bajo * nix o Cygwin , solo use menos . (Hay un dicho famoso: "menos es más, más o menos", porque "menos" reemplazó el comando anterior de Unix "más", con la adición de que podría desplazarse hacia arriba). Buscar y navegar en menos es muy similar a Vim, pero no hay un archivo de intercambio y se usa poca RAM.

Hay un puerto Win32 de GNU menos. Vea la sección "menos" de la respuesta anterior.

Perl

Perl es bueno para secuencias de comandos rápidas, y su ..operador (flip-flop de rango) es un buen mecanismo de selección para limitar la basura que tiene que atravesar.

Por ejemplo:

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

Esto extraerá todo de la línea 1 millón a la línea 2 millones, y le permitirá tamizar la salida manualmente en menos.

Otro ejemplo:

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

Esto comienza a imprimirse cuando la "expresión regular uno" encuentra algo, y se detiene cuando la "expresión regular dos" encuentra el final de un bloque interesante. Puede encontrar múltiples bloques. Tamizar la salida ...

logparser

Esta es otra herramienta útil que puedes usar. Para citar el artículo de Wikipedia :

logparser es una utilidad de línea de comandos flexible que fue escrita inicialmente por Gabriele Giuseppini, un empleado de Microsoft, para automatizar las pruebas para el registro de IIS. Fue diseñado para usarse con el sistema operativo Windows y se incluyó con las herramientas del Kit de recursos de IIS 6.0. El comportamiento predeterminado de logparser funciona como una "tubería de procesamiento de datos", al tomar una expresión SQL en la línea de comando y generar las líneas que contienen coincidencias para la expresión SQL.

Microsoft describe Logparser como una herramienta potente y versátil que proporciona acceso de consulta universal a datos basados ​​en texto, como archivos de registro, archivos XML y archivos CSV, así como fuentes de datos clave en el sistema operativo Windows, como el Registro de eventos, el Registro, el sistema de archivos y Active Directory. Los resultados de la consulta de entrada pueden tener un formato personalizado en la salida basada en texto, o pueden persistir en más destinos especializados como SQL, SYSLOG o un gráfico.

Ejemplo de uso:

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%'"

La relatividad de los tamaños.

100 MB no es demasiado grande. 3 GB se está volviendo algo grande. Solía ​​trabajar en una instalación de impresión y correo que creaba alrededor del 2% del correo de primera clase de los EE. UU. Uno de los sistemas para los que yo era el líder tecnológico representaba aproximadamente el 15% de las piezas de correo. Teníamos algunos archivos grandes para depurar aquí y allá.

Y más...

Siéntase libre de agregar más herramientas e información aquí. ¡Esta respuesta es wiki comunitaria por una razón! Todos necesitamos más consejos para manejar grandes cantidades de datos ...

MultiplyByZer0
fuente
8
+1, recientemente tuve algunos archivos xml realmente enormes (+1 gigabyte) que necesitaba ver. Estoy en Windows y tanto vim, emacs, notepad ++ y varios otros editores se ahogaron por completo en el archivo hasta el punto en que mi sistema casi se volvió inutilizable al intentar abrir el archivo. Después de un tiempo, me di cuenta de lo innecesario que era intentar abrir el archivo en un editor cuando solo necesitaba verlo. Usando cygwin (y un poco de grep / less / sed-magic inteligente) encontré fácilmente la parte que me interesaba y podía leerla sin problemas.
wasatz
8
no necesita cygwin por menos, también puede usarlo en Windows: gnuwin32.sourceforge.net/packages/less.htm
ChristophK
2
Este editor XML aquí también tiene un componente de visor de archivos de gran tamaño y proporciona colores de sintaxis también para archivos de gran tamaño. Los archivos no se cargan completamente en la memoria, por lo que un documento de varios GB no debería ser un problema. Además, esta herramienta también puede validar esos grandes documentos XML ... En mi opinión, uno de los mejores enfoques para trabajar con grandes datos XML.
lichtfusion
99
OK, así que solucioné mi propio problema. lesscon el ajuste de palabras es lento. less -Ssin envoltura de palabras es muy rápido incluso en líneas grandes. Estoy feliz de nuevo!
Andy Brown
66
Gran respuesta. Quiero señalar que si tiene instalado Git para Windows, probablemente también tenga Git bash, que incluye less.
transistor1