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 <[email protected]> escreveu: De: Fabiano Caixeta Duarte <[email protected]> Assunto: Re: [shell-script] Localizar a próxima linha, depois de uma string, em um arquivo texto Para: [email protected] 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]
