Buscar palavras dentro de um conjunto em um determinado arquivo [RESOLVIDO]

1. Buscar palavras dentro de um conjunto em um determinado arquivo [RESOLVIDO]

Jessica da Silva Guimarães
XxJessicaxX

(usa Ubuntu)

Enviado em 15/07/2022 - 16:30h

Eu tenho um arquivo grande e nele eu preciso pegar alguma palavras seria oo nome, telefone do Aluno e não do Professor, nesse arquivo tem varios alunos eu necessito de todos:
dentro do arquivo contem
Aluno {
Nome = Joao
Endereco = rua do joao
Telefone = tel joao
cpf = xxx.xxx.xxx-xx
}
Aluno {
Nome = Outro
Endereco = rua do outro
Telefone = tel outro
cpf = xxx.xxx.xxx-xx
}
Professor {
Nome = Pedro
Endereco = rua do pedro
Telefone = tel pedro
cpf = xxx.xxx.xxx-xx
}

eu usei o grep mas não obtive êxito.


  


2. Re: Buscar palavras dentro de um conjunto em um determinado arquivo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/07/2022 - 18:05h

XxJessicaxX escreveu:

Eu tenho um arquivo grande e nele eu preciso pegar alguma palavras seria oo nome, telefone do Aluno e não do Professor, nesse arquivo tem varios alunos eu necessito de todos:
dentro do arquivo contem
Aluno {
Nome = João 001
Endereco = rua do joao
Telefone = tel joao
cpf = xxx.xxx.xxx-xx
}
Aluno {
Nome = João 002
Endereco = rua do outro
Telefone = tel outro
cpf = xxx.xxx.xxx-xx
}
Professor {
Nome = Pedro
Endereco = rua do pedro
Telefone = tel pedro
cpf = xxx.xxx.xxx-xx
}

eu usei o grep mas não obtive êxito.

Boa tarde Jessica,
Segue sugestão:
awk 'BEGIN{RS="}\n";FS="\n";} $1~/Aluno/{printf "%s\n%s\n\n" ,$2,$4}' arquivo.txt 

Nome = João 001
Telefone = tel joao

Nome = João 002
Telefone = tel outro

Setei o "awk", para entender que o "}\n", é o separador de registro,
Onde campo 1 casa com Aluno,
Printa campo 2 e 4 (Nome e Telefone)
---------------------------------------------------------------------------------------------------------------
Opção com o sed:
sed -nr '/Aluno/,/\}/{s/(Nome|Telefone) = //p}' arquivo.txt 

"Casa" da linha que tem Aluno até a "}",
Nesse trecho 'casado', exclui
'Nome = '
'Telefone = '
printa só o que foi alterado.
----------------------------------------------------------------------------------------------------------------
grep
grep -E -A4 'Aluno' arquivo.txt|grep -E '^Nom|Tel' 

Para 'excluir' "(Nome|Telefone) = "
grep -E -A4 'Aluno' arquivo.txt|grep -E '^Nom|Tel'|sed 's/^[[:alpha:]]\+ = //'
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



3. Re: Buscar palavras dentro de um conjunto em um determinado arquivo [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 15/07/2022 - 22:15h


se o formato do arquivo for json existe um ótimo comando só para este formato - jq, que pode ser instalado via
sudo apt install jq






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts