[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Tutorial: Convertendo logs de Licq em logs de IRC
From: |
Fábio Olivé Leite |
Subject: |
Tutorial: Convertendo logs de Licq em logs de IRC |
Date: |
Tue, 29 Apr 2003 18:25:36 -0300 |
User-agent: |
KMail/1.4.3 |
Olá!
Agora de tarde tive a necessidade de enviar um log de umas conversas
via Licq para uma lista, para efeito de difusão para os meus colegas
de trabalho. Mas o log do Licq tem um formato pouco digerível, como o
abaixo:
[ R | 0001 | 0260 | 0000 | 1051628311 ]
:buenas patrício.
[ S | 0001 | 0270 | 0000 | 1051628461 ]
:fala paisano, tranquilo?
Achei que seria legal convertê-lo para algo tipo uma conversa de IRC.
O log acima não tem o nickname dos envolvidos, e a única diferença
entre algo recebido ou enviado é o R ou S, que depois de centenas de
linhas pode deixar as pessoas perdidas. Então fiz um awk script
rapidinho, que transformou isso em:
<felipe> buenas patrício.
<olive> fala paisano, tranquilo?
Olhem que barbada:
awk '/^\[ S/ { quem = "<olive>" };
/^\[ R/ { quem = "<felipe>" };
/^:/ { print quem, substr($0, 2) }' felipe.txt
Claro que neste caso eu sabia que era uma conversa entre eu (<olive>)
e o Felipe (<felipe>) e que o log estaria no felipe.txt. Como dá para
perceber que depois de uma linha que começa por "[ S" vem texto que
eu escrevi, neste caso eu coloco na variável "quem" o conteúdo
"<olive>". O mesmo ocorre para linhas que começam por "[ R", pois só
posso tê-las recebido (no caso do log do UIN do Felipe) do Felipe,
então a variável "quem" recebe o valor "<felipe>".
Para as linhas de texto enviado ou recebido, que começam por ":",
basta então imprimir o nome de quem escreveu (variável "quem")
seguido do texto escrito (a linha atual, que fica em $0). Notem que
uso o substr para retirar o ':', para ficar mais legível. O espaço em
branco entre "quem" e o texto é inserido pelo próprio print do awk,
ele sempre insere um espaço em branco entre seus parâmetros.
Bueno, é isso. Foi uma aplicação tão simples mas com um resultado tão
visível que achei que seria legal mandar para a lista com uma boa
explicação. Assim quem não conhece o awk vai percebendo suas
características.
Abraços!
--
OpenBSD: Unix casca grossa -=- KNOW THYSHELL (that is, man ksh)
- Tutorial: Convertendo logs de Licq em logs de IRC,
Fábio Olivé Leite <=