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

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

Re: [shell-script-pt] Grep em HTML


From: Tiago Peczenyj
Subject: Re: [shell-script-pt] Grep em HTML
Date: Fri, 18 Dec 2020 09:41:29 +0100

Opa

As vezes eu tenho exatamente este problema, preciso achar algo porem esta dentro de um tipo estruturado de dados como xml ou json (html nesse caso)

O problema disso é que, se utilizarmos ferramentas orientadas a linha como grep, as vezes fica dificil de encontrar o q queremos se temos coisas amontoadas na mesma linha (tal como html pode ser)

As opcoes -oE do grep sao muito poderosas porem vc acaba tendo estes caracteres extra q podemos facilmente remover com sed ou cut

(geralmente faço isso)

Entretanto existem ferramentas mais aprioriadas dependendo do tipo de estrutura. o velho browser de linha de comando lynx tem uma opcao -dump que transforma o html em arquivo texto

$ cat /tmp/exemplo/foo.html
<html>
<body>
<a href=""><a href=""></body>
</html>
$ lynx -dump /tmp/exemplo/foo.html
   [1]foo [2]bar
References
   1. file:///tmp/exemplo/foo
   2. file:///tmp/exemplo/bar

De repente este exemplo pode ajudar, pois vc tem no final a lista de links e pode filtrar com sed / grep o q vc deseja

$ lynx -dump /tmp/exemplo/foo.html  | sed -n '/^References/,$p'
References
   1. file:///tmp/exemplo/foo
   2. file:///tmp/exemplo/bar

 Abraços


Em sex., 18 de dez. de 2020 às 05:11, Vilmar Catafesta <vcatafesta@gmail.com> escreveu:
Olá pessoal,

Alguém disposto a ajudar com um regex para o GREP pegar de um html
o nome do arquivo entre as tags > e </a ?

Eu  poderia pegar a url do arquivo, porém, dependendo do nome do arquivo, como no exemplo
abaixo, o cURL me retorna a url do arquivo "truncado", e necessito pegar o nome do arquivo
integral para que possa criar um pacote com este nome.

O mais próximo que consegui foi com o regex abaixo:
grep -Eo '>[^"]*.chi.zst'

Exemplo de parte de html:
<a href=""            08-Dec-2020 17:26              517141
<a href=""       08-Dec-2020 17:26                 642
<a href=""                       08-Dec-2020 17:26              237986
<a href=""                  08-Dec-2020 17:26                 544

resultado:
>avahi-0.8+15+ge8a3dd0-3-x86_64.chi.zst
>avahi-0.8+15+ge8a3dd0-3-x86_64.chi.zst
>avfs-1.1.3-1-x86_64.chi.zst
>avfs-1.1.3-1-x86_64.chi.zst


outro detalhe, o regex tem que retornar somente o nome finalizado com .chi.zst
mas NÃO com .chi.zst.desc

Saudações
Vilmar




_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.


--
Tiago B. Peczenyj

http://about.me/peczenyj

reply via email to

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