#!/usr/bin/ksh
#
# Get arguments
#
File="$1"
MinHours=${2:-5}
MaxHours=${3:-24}
#
# Local function
#
GetDate(){ # GetDate nHours [format]
typeset -i nHours=$1; format=$2
typeset -i localOffset
typeset sign tz
localOffset=$(echo $TZ |
sed 's!^[^-0-9]*\([-0-9]*\).*!\1!')
(( (localOffset-nHours) >=0 )) && sign="+"
tz=$(echo $TZ |
sed 's!^\([^-0-9]*\)\([-0-9]*\)\(.*\)!\1'"$sign$((localOffset-nHours))"'\3!')
TZ=$tz date $format
}
#
# Main
#
awk '
function TimeStamp( mm,hms,ts) {
mm = index("__JanFebMarAprMayJunJulAugSepOctNovDec",$1) / 3;
if (mm == 0) mm=99;
hms = $3;
gsub(/:/,"",hms);
return sprintf("%02d%02d%06d",mm,$2,hms)
}
NF>=3 {
ts = TimeStamp();
if (ts >= From && ts <= To) print;
}
' From=$(LANG=C GetDate -$MaxHours '+%m%d%H%M%S') To=$(LANG=C GetDate -$MinHours '+%m%d%H%M%S') $File