Buscar trecho entre palavras

1. Buscar trecho entre palavras

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 04/12/2019 - 11:19h

Pessoas ... tenho um arquivo com milhares de linhas ... preciso fazer constantemente buscas por trechos especificos ... o único padrão que existe nas linhas é que esses trechos sempre ficam entre certas palavras ... outro porém entretanto é que pode ter mais de uma ocorrência dessas palavras, logo preciso especificar tb a ocorrência da palavra. como fazer isso ??

EX:
NOME joão bosco da silva CPF 12345678998 CIDADE tão tão distante NOME pedro paulo amaral ... nonononononononononoononononono
nonononononononononoononononono ...NOME manoel carlos CPF 12345678998 CIDADE tão tão distante NOME mario zetti CPF 12345678998... nonononononononononoononononono


* Retornar trecho entre a primeira ocorrência de 'NOME' e a primeira ocorrência de 'CPF' 
joão bosco da silva
manoel carlos

* Retornar trecho entre a primeira ocorrência de 'NOME' e a segunda ocorrência de 'CPF' >>>
manoel carlos CPF 12345678998 CIDADE tão tão distante NOME mario zetti



  


2. Possibilidade em python

Tampinha
tampinha

(usa Debian)

Enviado em 04/12/2019 - 14:08h

Amigo acho que voce está procurando um programa simples. Consegui fazer um em uns 3 minutos com python, talvez lhe agrade

# coding = utf-8
# using namespace std

file = str(input("Digite o caminho para o arquivo: "))
needle = str(input("Digite o texto para buscar: "))

op = open(file, "r+")
counter = 0
for i in op.readlines():
if needle in i:
counter += 1
print(i)
input("<<prescione qualquer tecla para a proxima linha>>")
print("Total de ocorrencias da palavra: ")
print(counter)



--Giulliano


3. Re: Buscar trecho entre palavras

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 04/12/2019 - 14:16h


Giulliano Rossi escreveu:
# coding = utf-8
# using namespace std

file = str(input("Digite o caminho para o arquivo: "))
needle = str(input("Digite o texto para buscar: "))

op = open(file, "r+")
counter = 0
for i in op.readlines():
if needle in i:
counter += 1
print(i)
input("<<prescione qualquer tecla para a proxima linha>>")
print("Total de ocorrencias da palavra: ")
print(counter)



velho ... não entendo nada de python ... mas pelo que deu a entender isso não me resolveria pois não sei o que preciso buscar, só sei aonde está !!!

me parece que esse seu programa daria para substituir por um grep + wc

grep "string" arquivo | wc 


de qualquer forma obrigado !!


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

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

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




4. Re: Buscar trecho entre palavras

Tampinha
tampinha

(usa Debian)

Enviado em 04/12/2019 - 18:30h

Cara de nada, mas será que com essa solução não dá pra fazer alguma coisa com isso, tipo mais de um termo para buscar em um texto ou arquivo, etc.
De qualquer forma, se você precisar eu entendo de python, e posso te ajudar com algo assim. Mas obrigando por responder.

--Giulliano


5. Re: Buscar trecho entre palavras

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/12/2019 - 21:05h


Mauriciodez escreveu:

Pessoas ... tenho um arquivo com milhares de linhas ...
preciso fazer constantemente buscas por trechos especificos ... o único padrão que existe nas linhas é que esses trechos sempre ficam entre certas palavras ... outro porém entretanto é que pode ter mais de uma ocorrência dessas palavras, logo preciso especificar tb a ocorrência da palavra. como fazer isso ??

EX:
NOME joão bosco da silva CPF 12345678998 CIDADE tão tão distante NOME pedro paulo amaral ... nonononononononononoononononono
nonononononononononoononononono ...NOME manoel carlos CPF 12345678998 CIDADE tão tão distante NOME mario zetti CPF 12345678998... nonononononononononoononononono


* Retornar trecho entre a primeira ocorrência de 'NOME' e a primeira ocorrência de 'CPF' 
joão bosco da silva
manoel carlos

* Retornar trecho entre a primeira ocorrência de 'NOME' e a segunda ocorrência de 'CPF' >>>
manoel carlos CPF 12345678998 CIDADE tão tão distante NOME mario zetti


Mauricio, testa ai....
#Elimina a 2º ocorrência de NOME e CPF... e 'caso'
sed -r 's/NOME//2;s/CPF//2' texto|grep -E -o 'NOME.*CPF [0-9]+'
NOME joão bosco da silva CPF 12345678998
NOME manoel carlos CPF 12345678998

#Pega a linha que tem duas ocorrências de "CPF"
grep -E -o  'NOME.*CPF [0-9]+.*NOME.*CPF [0-9]+' texto
NOME manoel carlos CPF 12345678998 CIDADE tão tão distante NOME mario zetti CPF 12345678998

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts