Live (e) grepping em um arquivo

2

Toda semana eu preciso carregar um arquivo que tenha milhões de linhas e começar a executar o greps nele. Alguns greps são positivos, alguns são negativos (sinalizador "-v"). Alguns são grep e outros são egrep.

Eu faço isso manualmente hoje - execute um grep, salve os resultados em um arquivo, então execute outro grep neste arquivo e salve no arquivo2, depois no arquivo3, etc.

Existe alguma ferramenta que pode tornar minha vida mais fácil, onde eu posso facilmente manipular uma lista de greps, egreps, que a ferramenta irá calcular e mostrar os resultados ao vivo? A ferramenta precisa armazenar em cache os resultados de greps anteriores para evitar que sejam executados novamente todas as vezes.

    
por Yon 15.11.2012 / 07:55

1 resposta

2

Não sei ao certo o que você quer dizer com "mostrar os resultados ao vivo" (mas veja o final da minha resposta para uma ideia), mas geralmente eu usaria make para esse tipo de tarefa . Por exemplo, dado um arquivo srcfile.txt no qual eu vou executar um número de greps, eu colocaria os greps em um makefile algo assim:

all: e.out b.out zy.out

single: e.out b.out

e.out: srcfile.txt
    grep e srcfile.txt >e.out

b.out: srcfile.txt
    grep b srcfile.txt >b.out

zy.out: srcfile.txt
    grep zy srcfile.txt >zy.out

... posso executar todos os greps necessários para atualizar os arquivos de saída

> make

... posso executar todos os greps que pesquisam letras individuais com

> make single

... etc. Durante algumas semanas na sua situação, eu acho que rapidamente acumulo um conjunto de regras que cobrem todos (ou quase todos) os casos em que eu estava. interessado.

Você pode economizar mais tempo e esforço colocando os comandos para carregar seu milhão de arquivos de linha no makefile também.

Se escolher um ou mais destinos usando o comando make não oferece flexibilidade suficiente, você pode usar condicionais no arquivo make, com base nas variáveis que você definir ao executar make , por exemplo veja o tutorial do makefile GNU sobre condicionais e este artigo sobre a passagem de variáveis da linha de comando make .

Para mostrar os resultados do grepping, eu estaria inclinado a usar tail ou menos como recomendado aqui . Uma dificuldade é que qualquer um dos métodos mostra apenas um arquivo de cada vez. Eu preciso saber mais sobre sua necessidade de visualização "ao vivo" para saber se isso pode ser satisfatório ou se outra solução pode ser necessária.

    
por 11.01.2013 / 05:35

Tags