Abrir arquivo enorme no Mac?

14

Estou olhando para abrir um arquivo de texto enorme no meu mac. O arquivo tem pouco mais de 10Gigs. Não vou explicar como foi criado ou para que serve, pois não é realmente relevante para a questão.

Existem programas para Mac que me permitam abrir um arquivo tão grande ou talvez dividi-lo em pedaços (digamos 200mb ou algo cada) que seriam mais fáceis de abrir individualmente.

Eu não preciso necessariamente editá-lo, basta ver partes dele. Tudo o que eu tentei, Textmate, Vim etc etc todos (compreensivelmente) porcaria ou demorar uma eternidade para carregar.

Também executo o Windows e o Linux, mas mover um arquivo tão grande não é fácil. Atualmente, ele reside no meu Mac e eu preferiria não ter o trabalho de movê-lo.

Chris Salij
fonte
Semelhante ao superuser.com/questions/138474/... , mas esta questão também aceita uma alternativa para dividir o arquivo
Doug Harris

Respostas:

16

split pode fazer isso -

 split -b 200m [file]

dividirá o arquivo em pedaços de 200 MB. Você pode dividir nas linhas com -l

 split -l 1000 [file]

dividirá o arquivo em pedaços de 1000 linhas.

Se isso não funcionar, existe um editor hexadecimal realmente bom para Mac, o Hex Fiend, que pode abrir arquivos enormes:

Trabalhe com arquivos enormes. O Hex Fiend pode lidar com um arquivo tão grande quanto você é capaz de criar. Foi testado em arquivos de até 118 GB.

Espero que ajude!

redigido
fonte
É o Unix, então deve funcionar. :)
maaartinus
1
Hex Friend é simplesmente incrível! Muito obrigado pela menção
lukaswelte
3

Você já tentou alguma das seguintes ferramentas de linha de comando:

  • sedou awk: editores de fluxo, mas às vezes podem exigir expressões complexas para obter a saída desejada
  • split: divide arquivos em blocos de um determinado número de bytes, linhas, etc.
  • csplit: divide o arquivo com base no contexto fornecido pela expressão regular

Um splitou csplitpode fazer o trabalho, dependendo de como eles gerenciam o uso da memória. Confira esta página para obter mais informações sobre splitecsplit .

Para obter mais informações sobre essas ferramentas, tente seu mecanismo de pesquisa favorito ou digite man <cmd-name>na linha de comando no Terminal.

Se você puder fornecer mais contexto sobre como deseja dividir os arquivos, tenho certeza de que alguém com conhecimento especializado de sed / awk ou expressões regulares pode ajudar.

dtlussier
fonte
2

Eu recomendo verificar o HexFiend - embora também seja um editor hexadecimal, ele lê o arquivo diretamente do disco rígido e não tenta carregá-lo na memória como a maioria dos outros editores de texto. Se você deseja ocultar a parte hexadecimal, desmarque "Hexadecimal" no menu Exibir.

Chealion
fonte
2

Outra opção seria usar os comandos internos head e tail .

Para obter as primeiras 1000 linhas:

head -1000 hugefile

Para obter as últimas 1000 linhas:

tail -1000 hugefile

Ou para obter linhas de 1.000.000 a 1.001.000:

head -1001000 hugefile | tail -1000

Isso pode levar bastante tempo, no entanto.

Eric Darchis
fonte
Eu gosto dessa opção Se eu apenas quisesse pegar alguns pedaços de cada vez. Ele não combina com o meu propósito agora, mas vou certamente ser a usá-lo no futuro :) Thanks
Chris Salij
0

Eu preciso do meu trabalho para exibir grandes arquivos de texto e tenho procurado anos em todas as alternativas, embora apenas no Windows.

O único editor de texto que eu encontrei que poderia realmente funcionar eficientemente em arquivos grandes é o V - The File Viewer .

Embora comercial, por US $ 20 vale a pena se você precisar editar esses arquivos com frequência.
Se você precisar visualizar apenas um arquivo em particular, ele possui uma versão de avaliação totalmente funcional.

A transferência de 10 GB pela rede para uma máquina Windows não deve ser insuportavelmente lenta.

harrymc
fonte