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.