Quero dizer 100+ MB grandes; tais arquivos de texto podem empurrar o envelope dos editores.
Eu preciso olhar através de um grande arquivo XML, mas não posso se o editor estiver com buggy.
Alguma sugestão?
VS Code (Windows, macOS, Linux) - Livre e de código aberto com uma boa GUI. Editado um arquivo JSON de 3.6 GB, carregado em um minuto. Você deve ter RAM suficiente para carregar os arquivos.
Telespectadores gratuitos só de leitura:
tail
." Suporta acompanhamento de arquivos, busca, filtragem, destaque configurável, plugins, e ferramentas externas.Editores gratuitos:
Construir programas (não requer instalação):
MORE
, não ao Unix mais
. Um programa de console que lhe permite visualizar um arquivo, uma tela de cada vez.Visualizadores da Web:
Editores pagos:
E finalmente, você já tentou abrir o arquivo grande com o seu editor habitual? Alguns editores podem realmente lidar com arquivos razoavelmente grandes. Em particular, **Notepad++*** (Windows) e Sublime Text (Windows, macOS, Linux) suportam arquivos na faixa de 2 GB.
Por que você está usando editores para simplesmente visualizar em um arquivo (grande)?
Sob *nix ou Cygwin, basta usar menos. (Há um famoso ditado - "menos é mais, mais ou menos" - porque "menos" substituiu o anterior comando Unix "mais", com a adição de que você poderia rolar de volta para cima). Pesquisar e navegar sob menos é muito similar ao Vim, mas não há nenhum arquivo swap e pouca memória RAM usada.
Há um porte Win32 do GNU menos. Veja o "less" seção da resposta acima.
Perl é bom para scripts rápidos, e seu operador ..
(range flip-flop) faz um bom mecanismo de seleção para limitar o crud que você tem que passar.
Por exemplo:
$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less
Isto irá extrair tudo da linha 1 milhão para a linha 2 milhões, e permitir que você peneirar a saída manualmente em menos.
Outro exemplo:
$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less
Isto começa a imprimir quando o "expressão regular um" encontra algo, e pára quando o "expressão regular dois" encontra o fim de um bloco interessante. Pode encontrar vários blocos. Desvia a saída...
Esta é outra ferramenta útil que você pode usar. Para citar o artigo da Wikipedia:
**logparser*** é um utilitário de linha de comando flexível que foi inicialmente escrito por Gabriele Giuseppini, um funcionário da Microsoft, para automatizar os testes de registro IIS. Ele foi projetado para ser usado com o sistema operacional Windows, e foi incluído com as Ferramentas do Kit de Recursos do IIS 6.0. O comportamento padrão do logparser funciona como um "data processing pipeline" pegando uma expressão SQL na linha de comando, e emitindo as linhas contendo correspondências para a expressão SQL.
a Microsoft descreve o Logparser como uma ferramenta poderosa e versátil que fornece acesso universal a dados baseados em texto, como arquivos de log, arquivos XML e arquivos CSV, bem como fontes de dados importantes no sistema operacional Windows, como o Log de Eventos, o Registro, o sistema de arquivos e o Active Directory. Os resultados da consulta de entrada podem ser formatados de forma personalizada na saída baseada em texto, ou podem ser persistidos para alvos mais especializados como SQL, SYSLOG, ou um gráfico.
Exemplo 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%'"
100 MB é' não é muito grande. 3 GB está ficando meio grande. Eu costumava trabalhar em uma gráfica & facilidade de correio que criou cerca de 2% do correio de primeira classe dos EUA. Um dos sistemas para o qual eu era o líder técnico era responsável por cerca de 15+% das peças de correio. Nós tínhamos alguns arquivos grandes para depurar aqui e ali.
Sinta-se à vontade para adicionar mais ferramentas e informações aqui. Esta resposta é wiki da comunidade por uma razão! Todos nós precisamos de mais conselhos para lidar com grandes quantidades de dados...