Extrair trecho entre as palavras

1. Extrair trecho entre as palavras

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 29/04/2021 - 19:17h

pessoas ... como faço um grep que me retorne somente o trecho entre duas palavras ... digamos entre 'inicio' e 'final' ?

o máximo que consegui foi grep -o -E 'inicio.*final' só que aí ele me retorna tb os padrões !!


  


2. Re: Extrair trecho entre as palavras

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/04/2021 - 19:53h

Mauriciodez escreveu:

pessoas ... como faço um grep que me retorne somente o trecho entre duas palavras ... digamos entre 'inicio' e 'final' ?

o máximo que consegui foi grep -o -E 'inicio.*final' só que aí ele me retorna tb os padrões !!

Só com o grep, não consegui....
echo "Frase com palavra inicio e a palavra final, entre outras palavras"|grep -o 'inicio.*final'|sed 's/inicio\|final//g'
awk:
echo "Frase com palavra inicio e a palavra final, entre outras palavras"|awk 'gsub(/(.*inicio|final.*)/,"")'
sed:
echo "Frase com palavra inicio e a palavra final, entre outras palavras"|sed 's/.*inicio\|final.*//g'



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



3. Re: Extrair trecho entre as palavras

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 29/04/2021 - 22:21h

Mostra somente o que está entre "inicial" e "final":
grep -oP '(?<=inicial).*(?=final)' 

* Detalhe: só funciona se "inicial" e "final" estiverem na mesma linha!


Se for uma palavra por linha:
grep -ozP '(?s)inicial\n\K.*?(?=final)' 



Testes:

$ echo "aaa bbb ccc ddd eee fff" | grep -oP '(?<=bbb).*(?=eee)'
ccc ddd

$ echo -e "aaa\nbbb\nccc\nddd\neee\nfff" | grep -ozP '(?s)bbb\n\K.*?(?=eee)'
ccc
ddd



4. Re: Extrair trecho entre as palavras

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 29/04/2021 - 22:31h


msoliver escreveu:
Só com o grep, não consegui....


Marcelão ... eu consegui fazer aqui um que me atende ... tentei usar suas soluções mas tem algum BO com as tags html .. v aí se consegue melhorar

curl https://br.investing.com/equities/vale-s.a.--americ | grep -oP 'price-last">\K[^<]+' 


OBS: nesse comando eu só consegui fazer com que ele use 1 caracter com delimitador final ... minha preferência é que use uma string como delimitador final !!!

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




5. Re: Extrair trecho entre as palavras

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 29/04/2021 - 22:35h


Ryuk escreveu:

Mostra somente o que está entre "inicial" e "final":
...


eu já tinha tentado algo parecido ... mas encalhei no html ... não sei qual o problema !!! postei o que eu preciso no post acima !!!

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




6. Re: Extrair trecho entre as palavras

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/04/2021 - 23:29h


Mauriciodez escreveu:


msoliver escreveu:
Só com o grep, não consegui....


Marcelão ... eu consegui fazer aqui um que me atende ... tentei usar suas soluções mas tem algum BO com as tags html .. v aí se consegue melhorar

curl https://br.investing.com/equities/vale-s.a.--americ | grep -oP 'price-last">\K[^<]+' 


OBS: nesse comando eu só consegui fazer com que ele use 1 caracter com delimitador final ... minha preferência é que use uma string como delimitador final !!!

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------


Veja se é isso,
lynx -dump https://br.investing.com/equities/vale-s.a.--americ|sed -nr '/^[ ]{3}[0-9]{2}\,[0-9]{2}$/p'
21,06
21,05




7. Re: Extrair trecho entre as palavras

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 30/04/2021 - 20:40h


msoliver escreveu:
...
Veja se é isso,
lynx -dump https://br.investing.com/equities/vale-s.a.--americ|sed -nr '/^[ ]{3}[0-9]{2}\,[0-9]{2}$/p'
...


não é não campeão ... a solução do meu problema eu já tenho ... eu preciso é que algo filtre entre os padrões !!!

[code]------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts