Grep - line-buffered, posso pesquisar o mesmo buffer com os resultados do primeiro grep?

1

Estou pesquisando um arquivo de log no seguinte formato

<date> <connection from: ip> <new connection ID> <info> 
<date> <connection ID> <info> 

Estou usando o seguinte para obter meu IP, mas a pesquisa pelo meu ID de conexão leva alguns minutos neste arquivo de log.

tail -f logfile | grep ip --line-buffered 

É possível primeiro procurar o IP e continuar pesquisando com base na ID de conexão?

O ID de conexão não é previsível e as seguintes linhas no log após minha correspondência não são necessariamente meu ID de conexão vinculado ao meu IP.

    
por Eduardo Figueroa 16.11.2016 / 18:03

2 respostas

0

Não.

Quando você faz

tail -f logfile | grep "ip-address" --line-buffered 

você somente obterá as linhas correspondentes ao padrão ip-address . Outras invocações de grep para o pipeline depois disso não poderão ver nenhuma outra linha do arquivo de log original.

Sem ver alguns exemplos de como o arquivo de log pode parecer, seria muito difícil encontrar (cegamente) uma solução de trabalho.

    
por 01.03.2018 / 12:12
-1

Você pode usar vários padrões em seu comando grep, por exemplo, para grep ambas as linhas com 'ip' e 'connection ID':

tail -f logfile | grep -E 'ip|connection ID' --line-buffered 
    
por 01.03.2018 / 13:30

Tags