No estoy muy seguro de lo que quiere decir con "mostrar los resultados en vivo" (pero vea el final de mi respuesta para una idea), pero generalmente usaría make para este tipo de tarea. Por ejemplo, dado un archivo srcfile.txt en el que voy a ejecutar varios greps, pondría los greps en un archivo MAKE algo como esto:
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
... Entonces puedo ejecutar todos los greps necesarios para actualizar los archivos de salida con
> make
... puedo ejecutar todos los greps que buscan letras individuales con
> make single
... etc Más de un par de semanas en su situación, creo que me acumulan rápidamente un conjunto de maquillaje reglas que cubrían todos (o casi todos) de los casos en los que yo estaba interesado.
Es posible que pueda ahorrar algo más de tiempo y esfuerzo al poner los comandos para cargar su archivo de más de un millón de líneas en el archivo MAKE también.
Si elegir uno o más objetivos con el comando make no proporciona suficiente flexibilidad, puede usar condicionales en el archivo make, según las variables que establezca al ejecutar make , por ejemplo, consulte el tutorial de makefile de GNU sobre condicionales y este artículo sobre cómo pasar variables desde la línea de comando make .
Para mostrar los resultados del grepping a medida que sucede, me inclinaría a usar la cola o menos como se recomienda aquí . Una dificultad es que cualquiera de los métodos solo muestra un archivo a la vez. Necesito saber más sobre su necesidad de visualización "en vivo" para saber si eso puede ser satisfactorio o si se requiere otra solución.