[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Ajuda Rastreamento Correios
From: |
Cristiano Ferrari |
Subject: |
Re: Ajuda Rastreamento Correios |
Date: |
Mon, 06 Jul 2009 21:34:59 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, "Ernander (Nander)" <ernander@...> escreveu
>
> Senhores boa Tarde!
>
> preciso de uma Ajudinha básica:
>
>
> o que eu quero é basicamente a linha em vermelho acima que deveria vir
> assim:
>
> #DATA #HORA #AGENCIA
> #CIDADE/ESTADO #STATUS
> 03/06/2009 14:35 CEE GOVERNADOR VALADARES - GOVERNADOR VALADARES/MG
> Entregue
>
> Mas o que me me interessa mesmo é somente a data/hora e o Status. Porém
> tenho vários status e de vez em qdo ( pelo fato de ser muito acessado) o
> site da "Server Unavaiable" mas é questão de minutos se eu refizer a
> consulta ele retorna os dados.
>
>
> como eu elimino o Lixo antes, filtro somente a linha que eu quero ( sem
> quebrar de linha o Status) para eu poder continar as averiguações?
>
Ernander, boa tarde.
Vamos por partes, como diria o Jack.
First of all, 2 conselhos:
1. Não use e-mail em formato HTML. Nem todos na lista recebem este formato (não
se surpreenda se alguem só ler os e-mails em um console tty). Eu mesmo, que
opto por não receber os e-mails mas acompanho a lista pelo RSS, não consigo ver
o código html na própria página do yahoo. Portanto, não tenho a menor idéia de
onde você destacou em vermelho.
2. Não cole muito conteúdo o corpo do e-mail. O texto que explica o seu
problema e o que realmente importa para alguém te ajudar se perde no meio do
conteúdo que você colou. Sem contar que o yahoo esculhamba as quebras de
linhas. O que está bonitinho na tela do seu mail client, chega aqui uma
verdadeira bagunça. Tem sites legais na internet onde você pode colar o seu
conteúdo, inclusive com destaque de sintaxe. O pastebin.com é um deles (dentre
muitos).
Bom, agora vamos ao seu problema. Pelo que consegui entender, você quer ver só
a primeira linha (de cima para baixa, a mais atualizada) do status do objeto,
certo?
Se for assim, tem várias maneiras de fazer isso. Voce pode comerçar usando uma
ER (http://www.aurelio.net/er/) para identificar o que são linhas de status e o
que é "lixo".
Uma coisa comum a toda linha de status é que ela tem um timestamp, reprsentado
pela data+hora. Então esta ER pega tudo que tem um timestamp no formato usado
pelo site:
[0-3][0-9]\/[0-1][0-9]\/"20"[0-1][0-9]\ [0-2][0-9]\:[0-5][0-9]
Atenção para o espaço em branco escapado (\ ) separando a hora da data.
Bom, o status vem na linha seguinte, então você precisa da linha que tem o
timestamp, mais a linha seguinte. "grep -A 2" faz isso para você.
Mas você só quer a última atualização. O comando head pega só as primeiras e
head -n 2 diz para pegar só as 2 primeiras.
Agora é só juntar a linha que tem o timestamp, com a do status. Use o sed para
isso. O comando para juntar as linhas é o ':a;$!N;s/\n//g;ta' (Aurélio denovo:
http://aurelio.net/sed/sed-HOWTO/sed-HOWTO-7.html). Se quiser entender o porque
da sopa de letrinhas, isso foi comentado aqui dias atrás
(http://br.groups.yahoo.com/group/shell-script/message/29438).
Então, juntando tudo isso, dá uma olhada como fica:
http://pastebin.com/f2548cd8
É isso que você queria fazer? Ajudou?