[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
Re: [shell-script] Duvida com sed,
jimmy <=
Re: [shell-script] Duvida com sed, Julio C. Neves, 2013/03/08