[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: melhor editor para ler um arquivo não formatado.



On Thu, Mar 30, 2006 at 01:04:19PM -0300, Francisco Welington de Sousa Lima wrote:
> Olá pessoal,
> 
>    meus arquivos estão assim;
> 
>            1   1349921.08496094        1214935.60073805
>    984297.043136346          1500000
>            2   1279687.79931641        1091869.07942939
>    795178.497489558          1500000
>            3   1240287.88427734        1025728.20356488
>    701918.851130923          1500000
> 
> porque não formatei ,alguém sabe como torná-lo assim
>    1   1349921.08496094 1214935.60073805  984297.043136346  1500000
> Sem ser manualmente, pois são dezenas de arquivos e cada com 500 linhas.

Um editor de texto que pode fazer isso é o vim.  Se todos os
arquivos têm exatamente o formato acima, é possível gravar
uma macro no vim para fazer essa tarefa. Antes, é claro,
seria bom fazer um backup dos arquivos.

Para gravar a macro, você posicionaria o cursor no início da
1ª linha e digitaria o seguinte:

<ESC>qq<End>i<Delete><ESC>j<Home>q

Depois, executaria a macro 499 vezes:

499@q

Mas para a coisa ficar realmente automatizada, você poderia
gravar uma nova macro que executaria a macro "q" 500 vezes,
salvaria o arquivo e passaria para o arquivo seguinte:

<ESC>qw500@q:wn<Enter>ggq

Então, sairia do vim e abriria todos os, digamos, 49
arquivos:

  vim dados*.txt

e daria um comando para a macro "w" ser executada 50 vezes:

49@w

Seria mais fácil se todos os arquivos pudessem ser
concatenados. Assim, após gravar a primeira macro, bastaria
executá-la 24999 vezes: 24999@q

Outra opção seria fazer um programinha em "awk" para
imprimir somente as linhas ímpares e outro para imprimir
somente as linhas pares. O output seria gravado em arquivos
separados e, depois, o programa "paste" poderia ser usado
para juntar tudo num único arquivo. Talvez também seja
possível resolver o problema com o "sed".

Eu sei que o que escrevi somente será útil se você tiver
interesse em aprender a usar o vim (ou emacs, que também
deve ser capaz de fazer a mesma coisa). Em todo caso, espero
ter ajudado...

Jakson

-- 
Seus amigos ainda usam Windows?
http://distante.dyndns.org:8280/migrar.html



Reply to: