[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Registros multi-linha em arquivo texto, ou Delimitadores de trecho de t
From: |
Breno Moiana |
Subject: |
Registros multi-linha em arquivo texto, ou Delimitadores de trecho de texto - parte II |
Date: |
Fri, 3 Apr 2009 15:51:54 -0300 |
Boa tarde, lista.
Algum tempo atrás, rodou na lista um estudo de caso [1] sobre um
arquivo texto que continha registros que precisavam ser reorganizados.
[1] http://br.groups.yahoo.com/group/shell-script/message/27782
A estrutura do arquivo era a seguinte:
<exemplo>
Ficha: 01
Nome: Fulano
Resumo: blabla
Telefone: 44 xxxx-9460
E-mail: fulano@...
-----
Ficha:02
Nome: Beltrano
Resumo: blabla
Telefone: 44 xxxx-2534 E-mail: beltrano@...
-----
Ficha: 03 Nome: Cicrano
Resumo: blabla
Telefone: 44 xxxx-2300
E-mail: Cicrano@...
</exemplo>
O objetivo era reestruturar o arquivo em colunas de NOME, RESUMO, EMAIL, etc.
Isso foi atingido com algumas propostas diferentes. Sed, Awk, grep+paste...
A minha pergunta é:
E como poderíamos fazer se os campos viessem embaralhados?
Sempre teriamos um separador de registros, mas a ordem dos campos nao
necessariamente é a mesma, e outros campos podem entrar.
Proposta: extrair "NOME, EMAIL, TELEFONE" dos registros no arquivo texto abaixo.
Note que os campos nao se repetem, e que um dos registros nao contem
email, devendo retornar vazio. vamos estipular um "-" nesse caso.
Entao, saída esperada:
<saida>
Fulano 44 xxxx-9460 fulano@...
Beltrano 44 xxxx-2534 -
Cicrano 44 xxxx-2300 Cicrano@...
</saida>
E a fonte de exemplo:
<exemplo>
Ficha: 01
Nome: Fulano
Resumo: blabla
Telefone: 44 xxxx-9460
E-mail: fulano@...
-----
Nome: Beltrano
Ficha:02
Resumo: blabla
Nome da mãe: Maria
Telefone: 44 xxxx-2534
-----
Resumo: blabla
Telefone: 44 xxxx-2300
Ficha: 03
Nome: Cicrano
Comida favorita: jabá com jerimum
E-mail: Cicrano@...
</exemplo>
Ideias?
abraco,
Breno.
--
- Registros multi-linha em arquivo texto, ou Delimitadores de trecho de texto - parte II,
Breno Moiana <=