Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vandergil

Comando GREP com LOOP

Recommended Posts

Srs(as) seguinte, preciso encontrar a ocorrencia de algumas expressões em um arquivo de log, para isso estou utilizando o comando grep, por exemplo:

 

grep -a '025240500328' LOG_DETALHADO.log

 

porém são muitas as expressões, e para isso gostaria de saber se tem como dar um loop em um arquivo com todas as expressões que desejo procurar, e ele enviar o resultado para outro arquivo, por exemplo, crio um arquivo com o conteudo:

 

125240500378

425240500369

325240500353

725240500341

925240500336

025240500317

 

Ai no comando grep teria um loop nesse arquivo, por exemplo:

 

grep -a loop_no_arquivo_de_expressoes LOG_DETALHADO.log >> resultado.txt.

 

Alguém sabe me informar se isso é possivel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Srs(as) seguinte, preciso encontrar a ocorrencia de algumas expressões em um arquivo de log, para isso estou utilizando o comando grep, por exemplo:

 

grep -a '025240500328' LOG_DETALHADO.log

 

porém são muitas as expressões, e para isso gostaria de saber se tem como dar um loop em um arquivo com todas as expressões que desejo procurar, e ele enviar o resultado para outro arquivo, por exemplo, crio um arquivo com o conteudo:

 

125240500378

425240500369

325240500353

725240500341

925240500336

025240500317

 

Ai no comando grep teria um loop nesse arquivo, por exemplo:

 

grep -a loop_no_arquivo_de_expressoes LOG_DETALHADO.log >> resultado.txt.

 

Alguém sabe me informar se isso é possivel?

 

Acho que você esta querendo encontrar uma sequencia de caracteres dentro de um arquivo, quando ele é atualizado.

 

Você já tentou gerar um loop com o comando grep ?

 

while true; do grep -a '025240500328' LOG_DETALHADO.log >> resultado.txt ; sleep 180; done

 

Coloquei o comando sleep 180, para que ele verifique a cada 3 minutos, senão ele vai acabar gerando um arquivo muito grande,

esse tempo você pode incrementar de acordo com sua necessidade.

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo, não sei se entendi errado, mas acho que não é bem isso que o vandergil quer.

 

Acho que você precisa é fazer uma lista com as expressões que quer procurar. Por exemplo:

 

lista="expressao1", "expressao2", "expressao3"

 

E daí iterar essa lista com o grep.

 

for i in ${lista[*]} do
   grep -a $l LOG_DETALHADO.log >> resultado.txt
done

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.