[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Expressão Regular para formatar log
From: |
Cristiano |
Subject: |
Re: Expressão Regular para formatar log |
Date: |
Sat, 25 Sep 2010 12:27:39 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, "andelnyr" <andelnyr@...> escreveu
>
> Prezados
>
> Um determinado equipamento que trabalho produz um log enorme durante o seu
> funcionamento. O formato é:
>
> dia_da_semana mês dia_do_mês 00:00:00 ano
> c dado_de_controle1 dado_de_controle2
> titulo_coluna1
> titulo_coluna2
> titulo_coluna3
> .
> .
> .
> titulo_coluna145
> h 00:00:00
> valor_coluna1
> valor_coluna2
> valor_coluna3
> .
> .
> .
> valor_coluna145
> h 00:05:00
> valor_coluna1
> valor_coluna2
> valor_coluna3
> .
> .
> .
> valor_coluna145
> h 00:10:00
> .
> .
> .
>
> Ou seja o equipamento colhe valores do sistema de 5 em 5 minutos e o que eu
> desejo fazer é transformar este log de quase 50000 linhas em um arquivo assim
>
> HORA titulo1 titulo2 tirulo3... titulo145
> 00:00:00 valor1 valor2 valor3
valor145
> 00:05:00 valor1 valor2 valor3... valor 145
> 00:10:00 valor1 valor2 valor3... valor 145
> .
> .
> .
> 23:55:00 valor1 valor2 valor3... valor 145
>
Respondi a mensagem anteontem, mas ela não apareceu no grupo. Estou moderado e
talvez por isso ela não tenha sido entregue.
Embora você tenha pedido uma ER para melhorar o que já fez (confesso que não li
o seu código), sugeri algo mais simples. Combinação de csplit + paste. Veja os
testes que fiz:
$ cat teste.txt
titulo_coluna1
titulo_coluna2
titulo_coluna3
titulo_coluna145
h 00:00:00
valor_coluna1
valor_coluna2
valor_coluna3
valor_coluna145
h 00:05:00
valor_coluna1
valor_coluna2
valor_coluna3
valor_coluna145
h 00:10:00
valor_coluna1
valor_coluna2
valor_coluna3
valor_coluna145
$ csplit teste.txt '/^h/' {*}
62
69
69
69
$ head -99 xx*
==> xx00 <==
titulo_coluna1
titulo_coluna2
titulo_coluna3
titulo_coluna145
==> xx01 <==
h 00:00:00
valor_coluna1
valor_coluna2
valor_coluna3
valor_coluna145
==> xx02 <==
h 00:05:00
valor_coluna1
valor_coluna2
valor_coluna3
valor_coluna145
==> xx03 <==
h 00:10:00
valor_coluna1
valor_coluna2
valor_coluna3
valor_coluna145
$ paste -s x* > paste.txt
$ cat paste.txt
titulo_coluna1 titulo_coluna2 titulo_coluna3 titulo_coluna145
h 00:00:00 valor_coluna1 valor_coluna2 valor_coluna3 valor_coluna145
h 00:05:00 valor_coluna1 valor_coluna2 valor_coluna3 valor_coluna145
h 00:10:00 valor_coluna1 valor_coluna2 valor_coluna3 valor_coluna145