usando awk para verificar entre dos fechas

Tengo un archivo con múltiples estructuras de datos, así:

eventTimestamp: 2010-03-23T07:56:19.166
result: Allowed
protocol: SMS
payload: RCOMM_SMS

eventTimestamp: 2010-03-23T07:56:19.167
result: Allowed
protocol: SMS
payload: RCOMM_SMS

eventTimestamp: 2010-03-23T07:56:19.186
result: Allowed
protocol: SMS
payload: SMS-MO-FSM

eventTimestamp: 2010-03-23T07:56:19.197
result: Allowed
protocol: SMS
payload: COPS

eventTimestamp: 2010-03-23T07:56:29.519
result: Blocked
protocol: SMS
payload: COPS
type: URL_IWF
result: Blocked

Quiero encontrar todos los eventos que son de carga útil: SMS-MO-FSM o carga útil: SMS-MO-FSM-INFO que ocurrió entre los tiempos 2010-03-23 12:56:47 y 2010-03-23 13: 56:47. Al consultar este archivo hasta ahora, he usado awk de la siguiente manera:

cat checkThis.txt |
awk 'BEGIN{FS="\n"; RS=""; OFS=";"; ORS="\n"}
     $1~/eventTimestamp: 2010-03-23T14\:16\:35/ && $4~/SMS-MO-FSM-INFO|SMS-MO-FSM$/ {$1=$1 ""; print $0}'

Lo que me dará todos los eventos que ocurrieron el segundo de 14:16:35 en 2010-03-23. Sin embargo, estoy luchando por pensar cómo podría poner el rango de fechas en mi consulta. Podría usar lo siguiente para poner las fechas en tiempo de época, pero ¿cómo puedo usar lo siguiente en mi awk para verificar si la fecha está entre los tiempos necesarios?

python -c "import time; ENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%S'; print int(time.mktime(time.strptime('2010-03-23T12:52:52', ENGINE_TIME_FORMAT)))"

Sé que esto podría hacerse en Python, pero he escrito un analizador en Python para esto y quiero este método como un verificador alternativo, así que quiero usar awk si es posible.

Llevé esto un poco más lejos y creé un script de Python para la conversión de tiempo:

#!/usr/local/bin/python
import time, sys
ENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%S'
testTime = sys.argv[1]
try:
    print int(time.mktime(time.strptime(testTime, ENGINE_TIME_FORMAT)))
except:
    print "Time to convert %s" % testTime
    raise

Luego intenté usar getline para asignar la conversión a una variable para la comparación:

cat checkThis.txt| awk 'BEGIN {FS="\n"; RS=""; OFS=";"; ORS="\n"; "./firstDate '2010-03-23T12:56:47'" | getline start_time; close("firstDate"); "./firstDate '2010-03-23T13:56:47'" | getline end_time; close("firstDate");} ("./firstDate $1," | getline) > start_time {$1=$1 ""; print $0}'
Traceback (most recent call last):
  File "./firstDate", line 4, in <module>
testTime = sys.argv[1]
IndexError: list index out of range

El getline funciona en BEGIN y lo comprobé en la impresión final, pero parece que tengo problemas en la parte de comparación del script.

Respuestas a la pregunta(2)

Su respuesta a la pregunta