shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] Avaliando duas linhas subsequentes


From: Fernando Luizao
Subject: Re: [shell-script] Avaliando duas linhas subsequentes
Date: Thu, 9 Sep 2010 11:32:01 -0700 (PDT)

Usando sed:

sed ':inicio ; $ b fim ; $! N ; s/\n/,/ ; b inicio ; :fim ; s/,,/\n/g' arquivo

O truque aqui é juntar tudo numa linha só, trocando quebras de linha por 
vírgulas. A primeira parte do comando faz isso:

sed ':inicio ; $ b fim ; $! N ; s/\n/,/ ; b inicio ; :fim ;' arquivo
NOME,TELEFONE,EMAIL,,NOME,TELEFONE,EMAIL,,NOME,TELEFONE,,NOME,TELEFONE,EMAIL

Como as linhas em branco foram substituídas por vírgulas, ficamos com ",," como 
separador dos blocos. Então, basta trocar ",," por uma quebra de linha ( 
s/,,/\n/g )

Qualquer dúvida é só perguntar.

Abraço
Fernando

--- Em qui, 9/9/10, César Vianna <address@hidden> escreveu:

De: César Vianna <address@hidden>
Assunto: [shell-script] Avaliando duas linhas subsequentes
Para: address@hidden
Data: Quinta-feira, 9 de Setembro de 2010, 14:30







 



  


    
      
      
      Pessoal, tenho um arquivo texto assim



NOME

TELEFONE

EMAIL



NOME

TELEFONE

EMAIL



NOME

TELEFONE



NOME

TELEFONE

EMAIL



Quero formar um csv dele que fique "NOME,TELEFONE,EMAIL"

Se não houver EMAIL, fique em branco



Se usar

grep -v "^$" | paste -d"," - - -



Dá errado por que nem sempre tem 3 linha



Sugestão? (acho que awk resolve, mas não sei fazer)



-- 

César Vianna

-------------------

Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às

unidades; os agenciamentos móveis aos sistemas.

Gilles Deleuze & Felix Guattari

******************************************************



[As partes desta mensagem que não continham texto foram removidas]





    
     

    
    


 



  






      

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]