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: [EMAIL PROTECTED] 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>[EMAIL PROTECTED]: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: [EMAIL PROTECTED] Seria mais fácil se todos os arquivos pudessem ser concatenados. Assim, após gravar a primeira macro, bastaria executá-la 24999 vezes: [EMAIL PROTECTED] 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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]