Abrir archivo masivo en Mac?

14

Estoy mirando para abrir un archivo de texto masivo en mi mac. El archivo es un poco más de 10Gigs. No voy a entrar en cómo se creó o para qué sirve, ya que no es realmente relevante para la pregunta.

¿Hay algún programa mac que me permita abrir un archivo tan masivo, o tal vez dividirlo en trozos (por ejemplo, 200 mb o algo) que sería más fácil de abrir individualmente?

No necesariamente necesito editarlo, solo ver partes de él. Todo lo que he probado, Textmate, Vim, etc., todos (comprensiblemente) se cagan o tardan una eternidad en cargarse.

También ejecuto Windows y Linux, pero mover un archivo tan grande no es fácil. Actualmente reside en mi Mac y preferiría no tener la molestia de moverlo.

Chris Salij
fuente
Similar a superuser.com/questions/138474/… , pero esta pregunta también acepta una alternativa para dividir el archivo.
Doug Harris

Respuestas:

16

la división puede hacerlo

 split -b 200m [file]

dividirá el archivo en partes de 200MB. Puedes dividir en líneas con -l

 split -l 1000 [file]

dividirá el archivo en 1000 trozos de línea.

Si eso no funciona, hay un editor hexadecimal realmente bueno para Mac, Hex Fiend que puede abrir archivos masivos:

Trabajar con archivos enormes. Hex Fiend puede manejar un archivo tan grande como puedas crear. Se ha probado en archivos de hasta 118 GB.

¡Espero que ayude!

redacted
fuente
Esto funciona como un encanto. Gracias
Chris Salij
Es Unix, por lo que debe funcionar. :)
maaartinus
1
Hex Friend es simplemente increíble !! Muchas gracias por la mención
lukaswelte
3

¿Has probado alguna de las siguientes herramientas de línea de comandos?

  • sed o awk: editores de flujo, pero estos a veces pueden requerir complejos Expresiones para obtener la salida deseada.
  • split: divide los archivos en bloques de un número dado de bytes, líneas, etc.
  • csplit: divide el archivo según el contexto dado por la expresión regular

Uno de split o csplit podría hacer el trabajo, dependiendo de cómo administran el uso de la memoria. Echa un vistazo a esta página para más información sobre split y csplit .

Para obtener más información sobre estas herramientas, pruebe su motor de búsqueda favorito o escriba man <cmd-name> en la línea de comando en la Terminal.

Si puede proporcionar más contexto sobre cómo desea dividir los archivos, estoy seguro de que alguien con conocimiento experto de sed / awk o expresiones regulares podría ayudar.

dtlussier
fuente
2

Recomendaría revisar HexFiend - aunque también es un editor hexadecimal, lee el archivo directamente desde el disco duro y no intenta cargarlo en la memoria como la mayoría de los editores de texto. Si desea ocultar la parte hexadecimal, desmarque "Hexadecimal" en el menú Ver.

Chealion
fuente
2

Otra opción sería utilizar los comandos incorporados. cabeza y cola .

Para obtener las primeras 1000 líneas:

head -1000 hugefile

Para obtener las últimas 1000 líneas:

tail -1000 hugefile

O para obtener líneas desde 1,000,000 hasta 1,001,000:

head -1001000 hugefile | tail -1000

Sin embargo, esto puede llevar bastante tiempo.

Eric Darchis
fuente
Me gusta esta opción. Si solo quisiera tomarlo unos trozos a la vez. No se adapta a mi propósito ahora, pero definitivamente lo usaré en el futuro :) Gracias
Chris Salij
0

Necesito que mi trabajo vea grandes archivos de texto y llevo años buscando alternativas, aunque solo en Windows.

El único editor de texto que encontré que realmente podría funcionar de manera eficiente en archivos grandes es V - El visor de archivos .

Aunque es comercial, a $ 20 vale la pena si necesita editar dichos archivos con frecuencia.
Si solo necesita ver un archivo en particular, tiene una versión de prueba completamente funcional.

La transferencia de 10 GB a través de la red a una máquina con Windows no debería ser insoportablemente lenta.

harrymc
fuente