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

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

Re: [shell-script] Localizar a próxima linha, depois de uma string, em u


From: Flavio Junior
Subject: Re: [shell-script] Localizar a próxima linha, depois de uma string, em um arquivo texto
Date: Wed, 28 Jan 2009 10:06:33 -0200

o "ed" é o pai do sed...
O ed é um editor de texto, o sed é um editor de fluxo.

Agora, sobre não se basear em uma variavel é bem dificil, visto que o
html tem mais 3 outras data/hora no mesmo formato:

lazlo:~#  grep -Eo '(([0-3])?[0-9]/){2}20[0-9][0-9] ([0-9][0-9]:?){3}' hora.html
28/1/2009 00:44:44
27/1/2009 22:44:44
27/1/2009 23:44:44
28/1/2009 00:44:44
lazlo:~#

Aqui:
<TD ALIGN="CENTER" BGCOLOR=#E0FFFF><B>Hora Oficial de Brasília em
Horário de Verão</B></TD>
</TR>
<TR>
<TD ALIGN="CENTER" BGCOLOR=#FFFF00><B>28/1/2009 00:44:44</B></TD>


E aqui:
Fusos horários adotados na Hora Legal Brasileira em referência ao
Tempo Universal Coordenado (UTC):
</font>

<FONT FACE="VERDANA" SIZE=4>
<P><TABLE BORDER=2 ALIGN=CENTER WIDTH=630>
<TR>
<TD ALIGN="CENTER" BGCOLOR=#CDF400><B>27/1/2009 22:44:44</B></TD>
<TD ALIGN="CENTER" BGCOLOR=#ffcc66><B>27/1/2009 23:44:44</B></TD>
<TD ALIGN="CENTER" BGCOLOR=#FFFF00><B>28/1/2009 00:44:44</B></TD>

O que da pra fazer é *garantir* que a hora do brasil é sempre a
primeira a aparecer:

lazlo:~#  grep -Eom1 '(([0-3])?[0-9]/){2}20[0-9][0-9]
([0-9][0-9]:?){3}' hora.html
28/1/2009 00:44:44


Não tenho outras ideias no momento.

--

Flávio do Carmo Júnior aka waKKu
#bash-br @ irc.freenode.net

2009/1/28 joao lopes <address@hidden>:
> usa o grep do gnu .
>
> /usr/local/bin/grep [-A](de after) [3] (quantas linhas vc quer avançar apos
> achar a strign)  [string]  <file>
>
>
>
> --- Em ter, 27/1/09, Fabiano Caixeta Duarte <address@hidden> escreveu:
> De: Fabiano Caixeta Duarte <address@hidden>
> Assunto: Re: [shell-script] Localizar a próxima linha, depois de uma string,
> em um arquivo texto
> Para: address@hidden
> Data: Terça-feira, 27 de Janeiro de 2009, 23:08
>
> 2009/1/27 fernando_gottlieb <fernando0973@ gmail.com>
>
>> Estou tentando criar um script para acertar a hora em Linux sem usar o
>
>> protocolo ntp, que é bloqueado por algumas empresas.
>
>>
>
>> Há um site do DSHO - Divisão Serviço da Hora - em
>
>> http://pcdsh01. on.br/HoraLegalB rasileira. asp onde é informada a hora
>
>> certa e pelo que sei tem como referência um relógio atômico.
>
>>
>
>> Eu consigo obter os dados da página mas não sei como localizar a hora.
>
>> Com links -dump http://pcdsh01. on.br/HoraLegalB rasileira. asp eu
>
>> obtenho algo semelhante a:
>
>>
>
>> Divisao Servic,o da Hora - DSHO
>
>>
>
>> Hora Legal Brasileira
>
>>
>
>> Versao em: [IMG]
>
>>
>
>> ------------ --------- --------- --------- ---------
>
>> | Hora Oficial de Brasilia em Horario de Verao |
>
>> ------------ --------- --------- --------- ---------
>
>> | 27/1/2009 21:48:11 |
>
>> ------------ --------- --------- --------- ---------
>
>>
>
>> Eu sei procurar uma string específica ( grep ), sei pegar partes
>
>> específicas de um texto ( awk '{print $x}', sei substituir strings (
>
>> tr '|' '') ou mesmo cortar strings (cut), sei pegar a primeira ou
>
>> primeiras linhas ( head -x ) ou últimas linhas ( tail -n ), mas não
>
>> sei avançar uma ou N linhas.
>
>>
>
>> Posso localizar a linha Hora Oficial de Brasilia com:
>
>>
>
>> links -dump http://pcdsh01. on.br/HoraLegalB rasileira. asp | grep 'Hora
>
>> Oficial de Brasilia', mas, como faço para saltar para a próxima linha?
>
>> (ou retroceder uma linha?)
>
>>
>
>> Grato pela atenção
>
>>
>
>> Fernando A. Gottlieb
>
>>
>
> Talvez seja melhor procurar exatamente o que você quer, ou seja, a
>
> data/hora.
>
> lynx -dump http://pcdsh01. on.br/HoraLegalB rasileira. asp|sed '/^ *[0-9/
>
> :]\{17,19\} *$/!d'
>
> Esta regex não é a melhor para localizar data/hora, mas serve exatamente ao
>
> seu caso. A opção por uma linha com 17 a 19 caracteres válidos se dá em
>
> razão da expressão de dias e meses com um ou dois dígitos.
>
> --
>
> Fabiano Caixeta Duarte
>
> Especialista em Redes de Computadores
>
> Linux User #195299
>
> Ribeirão Preto - SP
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 


reply via email to

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