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

[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?







reply via email to

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