En file.log, cada línea comienza con una marca de fecha completa. ¿Qué comando podría usarse para devolverme las líneas N-1, N y N + 1 con una diferencia de tiempo mayor que X segundos entre N y N + 1?

  FILENAME = "file.log"
 X = 2

 LINE1 = ""
 LINE2 = ""
 Line3 = ""
 LAST_TIMESTAMP = 0
 cat $ FILENAME |  mientras lee l;  hacer
     LINE1 = $ LINE2
     LINE2 = $ LINE3
     LÍNEA3 = $ l
     T = $ (echo $ LINE3 | awk -vFS = "]" '{print $ 1;}' | sed 's / \ [//')
     TIMESTAMP = $ (fecha -d "$ T" "+% s")
     if [$ (($ LAST_TIMESTAMP + $ X)) -eq $ TIMESTAMP];  luego 
         si [-n "$ LINE1"] && [-n "$ LINE2"];  luego
             echo $ LINE1
             echo $ LINE2
             echo $ LINE3
             eco "--------------------------------"
         fi     
     fi 
     LAST_TIMESTAMP = $ TIMESTAMP
 hecho 

Otra forma de hacerlo en un código más compacto, pero tiene un rendimiento más bajo, especialmente si file.log es grande:

  FILENAME = "file.log"
 X = 2

 LAST_TIMESTAMP = 0
 cat $ FILENAME |  mientras lee l;  hacer
     T = $ (echo $ l | awk -vFS = "]" '{print $ 1;}' | sed 's / \ [//')
     TIMESTAMP = $ (fecha -d "$ T" "+% s")
     if [$ (($ LAST_TIMESTAMP + $ X)) -eq $ TIMESTAMP];  luego 
         echo $ T     
     fi 
     LAST_TIMESTAMP = $ TIMESTAMP
 hecho |  mientras lee l;  hacer
     cat $ FILENAME |  grep -B 2 "$ l"
	 eco "-----------------------"
 hecho 

Estoy seguro de que hay una forma mucho más rápida y compacta de hacerlo usando solo awk, pero solo necesito un tiempo extra de mi parte para escribirlo.

More Interesting

¿Por qué son buenos los algoritmos de código abierto?

Cómo modificar Floyd Warshall para resolver Codeforces # 179 Div.1 B Greg y Graph

¿Cuál es la diferencia entre los cursos avanzados de algoritmos 6.046 y 6.854 en el MIT?

Cómo encontrar un árbol de expansión T con el mínimo peso máximo de trayectoria para 2 vértices en G

¿Desarrolla algoritmos comerciales después de volver a probar los datos históricos? ¿O debería buscar a través de datos históricos patrones utilizando un algoritmo?

¿Cómo debo definir el orden de mi cromosoma en mi algoritmo genético?

¿Es necesario el conocimiento de algoritmos clásicos para convertirse en un experto en inteligencia artificial?

Si el AM y el GM entre dos números están en la relación m: n, ¿cuál es la relación de los dos números?

¿Me puede explicar qué es una estructura de datos?

¿Cuál es la diferencia entre un tipo estable e inestable?

¿Cuándo se debe comenzar a resolver los problemas del Proyecto Euler en HackerRank? He resuelto alrededor de 50 en SPOJ, entonces, ¿es el momento adecuado para comenzar?

¿Cuánto tiempo se necesita para leer Introducción a Algoritmos de TH Cormen, para un principiante?

¿Qué algoritmo puedo usar para generar enteros (pseudo) aleatorios con una duración de ciclo infinito?

¿Por qué los programadores experimentados dicen que la programación del mundo real es completamente diferente a la programación competitiva?

¿Qué es el algoritmo em, cómo se hace paso a paso?