Live (e) grepping en un archivo

2

Cada semana más o menos necesito cargar un archivo que tiene millones de líneas y comenzar a ejecutar greps en él. Algunos greps son positivos, algunos son negativos (bandera "-v"). Algunos son grep y otros son egrep.

Lo hago manualmente hoy: ejecute un grep, guarde los resultados en un archivo, luego ejecute otro grep en este archivo y guarde en el archivo2, luego el archivo3, etc.

¿Existe alguna herramienta que pueda hacerme la vida más fácil donde pueda manipular fácilmente una lista de greps, egreps, que la herramienta calculará y mostrará los resultados en vivo? La herramienta necesita almacenar en caché los resultados de greps anteriores para evitar volver a ejecutarlos todo el tiempo.

A lo lejos
fuente
Um ... ¿pones los comandos que ejecutas actualmente manualmente en un script?
Scott
No, es muy dinámico. Necesito poder agregar greps, activar / desactivar algunos, etc.
Yon

Respuestas:

2

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.

Simon
fuente
Gracias por la ayuda, pero no es lo que estoy buscando.
Yon
En ese caso, ¿podría ampliar un poco lo que está buscando? Gracias.
Simon
Algo que me permite seleccionar un solo archivo, agregar egreps como patrones separados, activar y desactivar algunos y ver cómo cambia el resultado. Tiene que ser fácil de usar, no un script que edite una y otra vez.
Yon