Como grep para números de linha em um arquivo binário?

0

Estou no Centos 5 Linux e usando o GNU grep v2.5.1 e olhando para um arquivo de log de 36GB. É enorme e eu preciso encontrar cerca de um milhão de linhas a partir da ocorrência de uma string 6307459 no arquivo de log e visualizá-lo no emacs. Estou usando grep para encontrar o número da linha da ocorrência e, em seguida, usando head e tail para obter a seção que estou interessado em revisar. O problema que estou enfrentando é que grep encontra a linha, mas não a fornece para mim, em vez de imprimir uma mensagem sobre ela ser um arquivo binário:

> grep -n 6307459 /disk2/user/test/logs/2015-03-31-23-42-52-7224.log 
Binary file /disk2/user/test/logs/2015-03-31-23-42-52-7224.log matches

Eu imagino que em algum lugar no arquivo de log há alguns caracteres de controle que estão enganando o grep, mas o começo e o fim do arquivo se parecem com o texto normal.

Eu tentei renomeá-lo para /disk2/user/test/logs/2015-03-31-23-42-52-7224.log.txt, mas ele ainda diz que é um arquivo binário.

Como posso obter o número da linha da ocorrência do padrão 6307459 no arquivo para que eu possa usar head e tail para ver 20 linhas antes do padrão e 1.000.000 após o padrão?

    
por WilliamKF 06.04.2015 / 21:14