Questão Live (e) grepping em um arquivo


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 facilite minha vida, onde posso manipular facilmente uma lista de greps, egreps, que a ferramenta calculará e mostrará os resultados ao vivo? A ferramenta precisa armazenar em cache os resultados de greps anteriores para evitar a repetição de todos eles a cada vez.


2


origem


Hum… colocar os comandos que você atualmente executa manualmente em um script? - Scott
Não, é altamente dinâmico. Eu preciso ser capaz de adicionar greps, ligar / desligar, etc. - Yon


Respostas:


Eu não tenho certeza do que você quer dizer com "mostrar os resultados ao vivo" (mas veja o final da minha resposta para uma ideia), mas geralmente eu usaria faço para este tipo de tarefa. Por exemplo, dado um arquivo srcfile.txt em que 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

... eu posso correr todos os greps que procuram por letras únicas com

> make single

... etc. Durante algumas semanas na sua situação, acho que rapidamente acumularia um conjunto de faço regras que cobriam 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 arquivo de milhões de linhas no makefile também.

Se escolher um ou mais destinos usando o faço comando não fornece flexibilidade suficiente, você pode usar condicionais no arquivo make, com base em variáveis ​​que você definir ao executar faço, por exemplo. Veja o Tutorial do makefile GNU em condicionais e este artigo sobre a passagem de variáveis ​​do faço linha de comando.

Para mostrar os resultados do grepping como acontece, eu estaria inclinado a usar rabo 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.


2



Obrigado pela ajuda, mas não o que estou procurando. - Yon
Nesse caso, você poderia expandir um pouco o que está procurando? Obrigado. - Simon
Algo que me permite selecionar um único arquivo, adicionar egreps como padrões separados, ativar e desativar alguns e ver como ele altera o resultado. Precisa ser fácil de usar, não um script que eu edito de novo e de novo. - Yon