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.
- Trabajo muy duro para estudiar 13 horas al día durante más de 7 meses, pero todavía no puedo mejorar mi estructura de datos y habilidades de algoritmos, ¿qué debo hacer?
- No soy bueno con los algoritmos y no puedo encontrar una solución hasta que alguien me lo diga. ¿Cómo puedo arreglar esto?
- ¿Qué algoritmo de búsqueda usa True caller?
- Cómo resolver http://www.spoj.com/problems/TRAFFICN/ de spoj
- ¿Cuáles son los mejores sitios web con problemas de práctica de algoritmos?