Linux Editores de texto capazes de trabalhar com linhas muito longas e registros de tamanho fixo [fechado]

6

Eu tenho um problema bastante simples aqui: eu tenho um pedaço de texto que é uma grande linha gigante (~ 150.000 caracteres). Não há quebras de linha, e é um arquivo simples de tamanho fixo (ou seja, foi produzido por um programa COBOL ), portanto introduzir as quebras de linha não é apenas desajeitado, é ativamente inútil se eu estou tentando fazer alterações no arquivo. / p>

A maioria dos editores de texto tem dificuldades com uma única linha tão grande ( less não gosta, Gedit não gosta, nano não gosta, eu ouvi vim doesn ' gosto, etc.), embora funcionem.

Alguém tem alguma sugestão para um editor que seja mais adequado aos dados com os quais estou trabalhando? É apenas uma única linha, mas ainda causa mais problemas do que um arquivo de texto de 1GiB + com linhas de tamanho normal ...

Seria ainda melhor se funcionasse com EBCDIC e não barf quando encontrasse bytes nulos, ou manivesse-os quando escrevesse de volta (alguns campos são decimais codificados binários).

Por favor, note que isso não é sobre arquivos que são grandes em termos de tamanho bruto - o arquivo contém apenas uma única linha - mas sobre o fato de que a maioria dos editores não são otimizados para lidar com linhas muito longas. >     

por ipsi 07.07.2014 / 13:27

4 respostas

5

Eu acho que um arquivo como o que você está descrevendo é, para fins práticos, agindo como um arquivo binário e você deve tratá-lo como tal.

Você pode atacá-lo com um editor hexadecimal, mas isso não ajuda na parte do EBCIDC.

Se você tiver que editar bastante este arquivo e estiver intimamente familiarizado com seu formato de registro de tamanho fixo, pode valer a pena o seu tempo para preparar algo em Perl ou outro idioma (sugiro Perl porque é antigo e muito provavelmente teria módulos que convertam UTF-8, etc. para EBCIDC), que funcionariam com o formato específico desse arquivo.

    
por 07.07.2014 / 14:23
5

Na verdade, eu tentei vim em um arquivo com uma única linha de 150000 caracteres e funcionou bem como seda.

Então, eu acho que você deveria tentar, se você não fez isso só porque you heard vim doesn't like such kind of files .

Veja como recebi meu arquivo:

seq 150000 | while read num; do echo -n "b" ; done > megaline.txt
    
por 07.07.2014 / 15:05
3

Eu tentei o mesmo método que o Dakatine com o meu emacs install e funcionou bem. Não hangups, nada. Se você estiver editando texto simples (ou seja, não fazendo o tipo de análise que um modo para uma linguagem de programação requer, em text-mode ), será muito, muito difícil travar o emacs. O comportamento que você está vendo com o Eclipse é provavelmente um reflexo do fato de que o Eclipse está tentando fazer algum tipo de análise no texto à medida que o processa - idem para o Gedit. Eu também não posso reproduzir o seu problema com less - ele sai bem para mim.

    
por 07.07.2014 / 17:56
1

Faça uma tentativa: JEdit - Um editor de programadores

Ele possui alguns recursos avançados de buffering e E / S altamente otimizada, mas demora um pouco para ser inicializado (devido à JVM). Eu tenho usado para ver & Edite arquivos acima de 1GiB sem nenhum problema - pelo menos no Debian. Eu não posso garantir que ele vai se comportar tão bem no Windows embora ...:)

    
por 07.07.2014 / 18:54