hedkandi has asked for the wisdom of the Perl Monks concerning the following question:
Hi team I found this script online and made some changes to it to convert Epoch time-stamped history files into human-readable format, but I keep getting this annoying "day out of range error" Here's the script I'm using:
#!/bin/bash # YYYY MM DD HH MM SS # perl autosplits the string and uses timelocal to return # the number of seconds from the Epoch # No error checking! function seconds_from_epoch { echo $*| perl -MTime::Local -ane ' my $epochseconds = timegm($F[5], $F[4], $F[3], $F[2], $F[1], $F[0]); print "$epochseconds\n"; ' } # parse file s32adm_bash_history date and time set -- $(ls -l s32adm_bash_history) fdate=$7 ftime=$6 # parse the year, month, and day set -- $(IFS="-"; echo $fdate) fyear=$1 fmonth=$2 fday=$3 # parse the hours and minutes set -- $(IFS=":"; echo $ftime) fhour=$4 fmin=$5 totsecs=$(seconds_from_epoch $fmin $fhour $fday $fmonth $fyear ) echo $totsecs
and this is the error:
[root@H99A100 user_history]# ./timeperl Day '' out of range 1..31 at -e line 2
So what am I doing wrong? Is it the timegm? I changed it to Localtime and I get the same error Please help! I've been cracking it for days Rgds
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Epoch time conversion script
by NetWallah (Canon) on Mar 28, 2012 at 04:30 UTC | |
by hedkandi (Initiate) on Mar 28, 2012 at 04:48 UTC | |
by Anonymous Monk on Mar 28, 2012 at 07:15 UTC | |
by hedkandi (Initiate) on Mar 28, 2012 at 08:59 UTC | |
by lidden (Curate) on Mar 28, 2012 at 10:36 UTC | |
| |
by NetWallah (Canon) on Mar 28, 2012 at 17:34 UTC | |
|