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

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

Re: [shell-script] Duvida com sed


From: jimmy
Subject: Re: [shell-script] Duvida com sed
Date: Fri, 8 Mar 2013 14:30:31 -0300
User-agent: mutt-ng/devel-r804 (Linux)

Saudações torre_collons,

On Fri, Mar 08, 2013 at 03:46:06PM -0000, torre_collons wrote: [...]
> Eu tenho um arquivo de texto do resultado de uso do wget em um script,
> eu quero recuperar apenas os links que não foram baixados, em seguida,
> colocar um exemplo de um que foi baixado, e outro que deu erro:
[...]
> Como posso recuperar a linha com o link errado.
Assumindo que a dúvida  seja específica sobre sed e que  o padrão do log
seja um identificador "CORRECTO" ou ERRO seguindo de:

    - quebra de linha
    - data
    - quebra de linha
    - link

podemos fazer o seguinte para representar o padrão:

     $ sed 
'/^ERRO/{N;/\n--[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\s[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}--$/{N;s/.*\n//;p}};d'
 <seu_arquivo_de_log>

esse 1liner  irá procurar um  linha que inicie  com "ERRO" e  apensar ao
"pattern space"[1] a próxima linha, se esta linha esta tiver o padrão de
data esperado a  próxima linha também será apensada e  seria esta última
nosso objetivo. Nesse exemplo, não me preocupei em validar o url, avalie
se isto é crítico no seu problema. O comando "d" no final é para remover
todas as outras  linhas. Esse não é  o único meio de se  fazer, mesmo em
sed, mas é um dos mais simples de se embutir em sed-scripts maiores.

[1] info sed 'Execution Cycle'

--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com


reply via email to

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