Como posso pesquisar o padrão correspondente (armazenado em uma variável) em um arquivo usando o awk?

0

Eu tenho um arquivo de log no qual preciso verificar se há alguma mensagem de erro. Se houver, extraia a mensagem de erro para outro arquivo.

Assim, posso ter um arquivo de erro para o arquivo diferente ter padrões de log diferentes. Então, como posso pesquisar o padrão de correspondência usando uma variável?

Como desejo criar um arquivo .sh genérico para todos os arquivos de log. Suponha que eu tenha um arquivo no qual eu queira pesquisar para padronizar e imprimir em outro arquivo $pat1="ERROR MESSAGE" $pat2="RAISE_ERROR_SEEN" . Eu quero todas as linhas do arquivo b / w esses dois padrões.

Usando apenas variáveis.

    
por Vipin Sahu 12.08.2018 / 14:34

2 respostas

0

Tente isso,

 awk "/""$pat1""/,/""$pat2""/" test.log | grep -v "$pat3" > Error.bk
  • imprime o contexto entre $pat1 e $pat2
  • Como temos espaço na primeira variável, use aspas duplas duas vezes.
por 12.08.2018 / 15:07
0

de uma maneira mais simples:

grep -e "$pat1\|$pat2" filename > resultfile
    
por 12.08.2018 / 15:22