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

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

Re: [shell-script] Formatação de campo de um texto


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] Formatação de campo de um texto
Date: Wed, 27 Apr 2005 13:34:45 -0300 (BRT)

Sem tempo pra pensar bonitinho, vai o método força bruta:

$ cat -T lixo
Vox DDR - Mato Grosso^I6530279000^IAV. BEIRA RIO (GVT:78015000) 1655 
CUIABA^ILigações Locais^I20041228044907^I000100^I656234488^ILOCAL^I4^I30%

$ sed 
's/\(\([^TAB]*TAB\)\{4\}\)\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)\(TAB.*\)/\1\3-\4-\5
 \6:\7:\8\9/' lixo | cat -T

Vox DDR - Mato Grosso^I6530279000^IAV. BEIRA RIO (GVT:78015000) 1655 
CUIABA^ILigações Locais^I2004.12.28 04:49:07^I000100^I656234488^ILOCAL^I4^I30%

Separando o sed em várias linhas pra ficar mais fácil pra entender
essa miséria:

's/
\(\([^TAB]*TAB\)\{4\}\)\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)\(TAB.*\)
/
\1\3-\4-\5 \6:\7:\8\9
/'

Primeiros campos são o buffer \1;
O buffer \2 está dentro do \1, usado pra juntar o campo e o tab;
Os buffers de \3 a \8 são a data;
O buffer \9 é "o resto".

Tudo quanto é TAB na linha do sed vc troca pelo TAB literal.

Que feio! Talvez alguém bote uma mais fácil ':)
-- 
Eliphas

Armando Roque, @ 09:52:

> Oooppps, desculpe....
> Caractere separador: TAB

> Eliphas Levy Theodoro wrote:
>
>> Armando Roque, @ 08:50:
>>> No trecho a seguir, gostaria de formatar o campo 5 (data) para que eu
>>> possa incluir os registros no banco de dados.
>>>
>>> Vox DDR - Mato Grosso   6530279000      AV. BEIRA RIO (GVT:78015000)
>>> 1655 CUIABA        Ligações Locais 20041228044907  000100
>>> 656234488               LOCAL   4       30%
>>> Ex.: 20041228072256 convertido para 2004-12-28 07:22:56

>> Isso é tudo uma linha só? Tem caractere de tabulação? Onde ficam as
>> separações de campos? ':)

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



reply via email to

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