O RE na correspondência de padrões começa com ^
, que liga a expressão ao início da linha. Se você quiser combinar sua expressão em qualquer lugar, é necessário removê-la.
Suas declarações if...
assumem que os campos de data / hora estão em $1
e $2
, que também são (por definição) não necessariamente verdadeiros. Tente isso em vez disso (não foi testado porque não tenho uma amostra dos seus dados)
awk '
{
if (match($0, /\<[0-9]{4}-[0-9]{2}-[0-9]{2} [0-2][0-9]:[0-5][0-9]\>/))
{
s = substr($0, RSTART, RLENGTH)
if (s >= "2014-04-07 23:00") p=1
if (s >= "2014-04-08 02:00") p=0
}
}
p { print $0 }
' log
Saída de dados de amostra
2014-04-07 23:40:33.345 aegsgssdh
wqtqttqtqtq
post
agggsdgg
2014-04-08 01:00:54.777 ggsdgwettwetewt
cvdgwetegdkiytitityi
error