[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]