grep - o nome do arquivo de impressão falha ao processar

2

Eu tenho um log como este. Qual processa o número de arquivos no formato .bill.file. Em caso de problemas com o processamento de uma mensagem SEVERE seguida por INFO será impressa com detalhes sobre o caminho do arquivo

SEVERE  2016-02-09 00:45:18 [process number] rocessRunner.process Exception during process 123.bill.file
SEVERE  2016-02-09 00:45:18 [process number]
...
...
INFO    2016-02-09 00:45:18 [process number] Runner. Closing input  /var/run/data/123.bill.file

Meu requisito é chegar ao caminho dos arquivos que dão exceção.

    
por upkar 11.02.2018 / 11:44

1 resposta

1

grep não é realmente adequado para uma correspondência baseada em condição, como o requisito que você tem, mas mais adequado para awk , que pode processar várias correspondências de padrão em várias linhas. Aqui, por sua entrada, primeiro combinamos a string começando com SEVERE e quando a próxima coincidência de INFO vier, imprimimos a última coluna que provável contém o arquivo que você está procurando.

awk '/^SEVERE/{flag=1; next} flag && /^INFO/{print $NF; flag=0}' file
    
por 11.02.2018 / 11:54

Tags