Date to epoch problem

 
Thread Tools Search this Thread
Operating Systems OS X (Apple) Date to epoch problem
# 8  
Old 10-03-2011
Why not copy-paste it into your post, putting it in code tags? [ code ] stuff [ /code ] without the extra spaces in the tags.
# 9  
Old 10-04-2011
Ok, here it is:

The script is not finished yet. The goal of the script is to select all events from ical by screening all the .ics files for events in the next 24 hours.

Quote:
#!/bin/bash

# Create temporary directory
mkdir -p ~/tmp/iCal_GeekLet
tmpdir=~/tmp/iCal_GeekLet

rm -f ${tmpdir}/1_epoch.txt
rm -f ${tmpdir}/2_time.txt
rm -f ${tmpdir}/3_event.txt
rm -f ${tmpdir}/4_location.txt

#Save current time as epoch
Epoch_current=`date +%s`

#Add 24 hours
Epoch_24=$[${Epoch_current} + 86400]


# WHOLE DAY EVENTS:
for i in `ls *.ics`; do

if [ `awk 'NR == 9' ${i} | sed 's+.*:++g' | wc -m` = 10 ]
then
Epoch_event_tmp=`awk 'NR == 9' ${i} | sed 's+.*:++g' | sed 's/./\/&/5' | sed 's/./\/&/8'`
Epoch_event=`date -j -f date -j -f "%Y/%m/%d %T" "${Epoch_event_tmp} 00:00:00" +"%s"`

if [ "${Epoch_current}" \< "${Epoch_event}" ] && [ "${Epoch_24}" \> "${Epoch_event}" ]

then
echo ${Epoch_event} >> ${tmpdir}/1_epoch.txt
echo `awk 'NR == 9' ${i} | sed 's+.*:++g' | sed 's/./\/&/5' | sed 's/./\/&/8'` >> ${tmpdir}/2_time.txt
echo `awk 'NR == 11' ${i} | sed 's+.*:++g'` >> ${tmpdir}/3_event.txt
echo `awk 'NR == 14' ${i} | sed 's+.*:++g'` >> ${tmpdir}/4_location.txt

fi

# TIMED EVENTS
elif [ `awk 'NR == 9' ${i} | sed 's+.*:++g' | wc -m` = 17 ];
then
Epoch_event_date=`awk 'NR == 9' ${i} | sed 's+.*:++g' | sed 's/./\/&/5' | sed 's/./\/&/8' | sed 's/T.*//'`
Epoch_event_time=`awk 'NR == 9' ${i} | sed 's+.*:++g' | sed 's+.*T++g' | sed 's/./\:&/3' | sed 's/./\:&/6'`
Epoch_event=`date -j -f date -j -f "%Y/%m/%d %T" "${Epoch_event_date} ${Epoch_event_time}" +"%s"`

if [ "${Epoch_current}" \< "${Epoch_event}" ] && [ "${Epoch_24}" \> "${Epoch_event}" ]

then
echo ${Epoch_event} >> ${tmpdir}/1_epoch.txt
echo `awk 'NR == 9' ${i} | sed 's+.*:++g' | sed 's/./\/&/5' | sed 's/./\/&/8'` >> ${tmpdir}/2_time.txt
echo `awk 'NR == 11' ${i} | sed 's+.*:++g'` >> ${tmpdir}/3_event.txt
echo `awk 'NR == 14' ${i} | sed 's+.*:++g'` >> ${tmpdir}/4_location.txt


fi
fi
done
The error is associated with the line:

Quote:
Epoch_event=`date -j -f date -j -f "%Y/%m/%d %T" "${Epoch_event_date} ${Epoch_event_time}" +"%s"`
Thanks in advance!

M0s..
# 10  
Old 10-04-2011
I just exported an "event" from iCal, ran your script and got no error (no output at all).

The generated file looks like this:

iCal_GeekLet:
Code:
" ============================================================================
" Netrw Directory Listing                                        (netrw v140)
"   /Users/scott/tmp/iCal_GeekLet
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec
" ============================================================================
../

(no idea what any of this is about Smilie)

Can you add set -x under the #!/bin/bash and see if that helps us.

Also, can you say which .ics file it is working on when you get the error, and can you try eliminating that from the list?

Can you also change:
Code:
for i in `ls *.ics`; do

to
Code:
for i in *.ics; do

and change all references to it (${i}) to "$i" (surrounded with double quotes)?
# 11  
Old 10-04-2011
Hi Scott,

Thanks for your help!

This is the output:

Code:
+ mkdir -p /Users/vincent/tmp/iCal_GeekLet
+ tmpdir=/Users/vincent/tmp/iCal_GeekLet
+ rm -f /Users/vincent/tmp/iCal_GeekLet/1_epoch.txt
+ rm -f /Users/vincent/tmp/iCal_GeekLet/2_time.txt
+ rm -f /Users/vincent/tmp/iCal_GeekLet/3_event.txt
+ rm -f /Users/vincent/tmp/iCal_GeekLet/4_location.txt
++ date +%s
+ Epoch_current=1317756610
+ Epoch_24=1317843010
++ ls long.ics test.ics
+ for i in '`ls *.ics`'
++ awk 'NR == 9' long.ics
++ sed 's+.*:++g'
++ wc -m
+ '[' 17 = 10 ']'
++ awk 'NR == 9' long.ics
++ sed 's+.*:++g'
++ wc -m
+ '[' 17 = 17 ']'
++ awk 'NR == 9' long.ics
++ sed 's+.*:++g'
++ sed 's/./\/&/5'
++ sed 's/./\/&/8'
++ sed 's/T.*//'
+ Epoch_event_date=2007/06/14
++ awk 'NR == 9' long.ics
++ sed 's+.*:++g'
++ sed 's+.*T++g'
++ sed 's/./\:&/3'
++ sed 's/./\:&/6'
+ Epoch_event_time=$'13:00:00\r'
' +%ste -j -f date -j -f '%Y/%m/%d %T' '2007/06/14 13:00:00
)arning: Ignoring 1 extraneous characters in date string (
+ Epoch_event=1181818800
+ '[' 1317756610 '<' 1181818800 ']'
+ for i in '`ls *.ics`'
++ awk 'NR == 9' test.ics
++ sed 's+.*:++g'
++ wc -m
+ '[' 10 = 10 ']'
++ awk 'NR == 9' test.ics
++ sed 's+.*:++g'
++ sed 's/./\/&/5'
++ sed 's/./\/&/8'
+ Epoch_event_tmp=$'2007/10/08\r'
 00:00:00' +%sdate -j -f '%Y/%m/%d %T' '2007/10/08
+ Epoch_event=1191794400
+ '[' 1317756610 '<' 1191794400 ']'

Do you see anything weird, other than the error?

Kind regards,

M0s..

Last edited by mosthated; 10-05-2011 at 06:53 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert a date stored in a variable to epoch date

I am not able to pass date stored in a variable as an argument to date command. I get current date value for from_date and to_date #!/usr/bin/ksh set -x for s in server ; do ssh -T $s <<-EOF from_date="12-Jan-2015 12:02:09" to_date="24-Jan-2015 13:02:09" echo \$from_date echo... (7 Replies)
Discussion started by: raj48
7 Replies

2. Shell Programming and Scripting

Epoch time to produce exact date everytime

so i have to perform a certain task at set times. for instance, i need to run a job at 12:30am every night, and other jobs, i only need to have them run on saturdays. how do i manipulate the date command to give me the epoch equivalence of what 12:30am would be every day? im looking for a... (3 Replies)
Discussion started by: SkySmart
3 Replies

3. Shell Programming and Scripting

Convert epoch time to Julian date

Need assistance in converting an epoch time to Julian date To get epoch perl -e 'use Time::Local; print timelocal(1,5,2,12,10,2008), "\n"' (3 Replies)
Discussion started by: ajayram_arya
3 Replies

4. Shell Programming and Scripting

Turning given date to epoch

i can probably script this in bash, but, i was wondering, does anyone know of a simple way to translate a given time to epoch? date -d@"29/Oct/2013:17:53:11" the user would specify the date: 29/Oct/2013:17:53:11 and the script will simply interpret that to epoch: 1348838383 (this is just... (4 Replies)
Discussion started by: SkySmart
4 Replies

5. Programming

Converting a user inputted date to epoch time

Hi all , I need to know how to convert a time stamp entered by the user to be converted to GMT/UTC(epoch time) using mktime() and gmtime() for exapample the input will be put in the form ptm.tm_sec = 0; ptm.tm_min = 59; ptm.tm_hour = 11; ptm.tm_mday = 20;... (2 Replies)
Discussion started by: ada
2 Replies

6. Shell Programming and Scripting

Date conversion from Standard/given format to seconds/epoch

I am trying get time difference of two dates in secs. Initially I want to convert a standard date format to epoch for two dates and then subtract the two epoch dates. Example : date -d "2007-09-01 17:30:40" '+%s' But this gives me below error date: illegal option -- d Usage: date OS: AIX... (6 Replies)
Discussion started by: bpaac
6 Replies

7. Shell Programming and Scripting

Get Formatted Date from Unix Epoch

Could someone please explain how to get a formatted date from the unix epoch (the number of seconds since Jan 1, 1970) For example., If the input is 1297969816, then the output should be 2011-02-17 in YYYY-MM-DD formatted manner. I am using AIX sh shell. Tried date -d and date --date, these... (4 Replies)
Discussion started by: Jesinth Nirmal
4 Replies

8. Shell Programming and Scripting

Need to convert an epoch date to MMDDYYHHmm format

System: HP-UX Kornshell Perl is installed, but not POSIX Hello, I am calculating a future date/time. To do this I take the system date in epoch format and add to it. I now need to take the new epoch date and convert it to MMDDYYHHmm format. Any help with this is greatly appreciated. (4 Replies)
Discussion started by: LetsGoPens
4 Replies

9. Shell Programming and Scripting

Date to epoch problem

Hi all! I have a "simple" problem: I want to convert a date and time string (YYYYMMDDhhmmss) to epoch (unix time) in a shellscript. I want to use the "date/time" string as an input to the script, eg: scriptname.sh 20090918231000 and get the epoch format echoed out. Is there an... (3 Replies)
Discussion started by: condmaster
3 Replies

10. Shell Programming and Scripting

Convert date into epoch in Perl on Solaris

Solaris 10 doesn't seem to like me a lot. I am trying to run a simple script to accept date and return epoch of that date: #!/usr/bin/perl -w use strict; use Time::ParseDate; my($date1)="Mon Mar 27 05:54:08 CDT 2009"; chomp $date1; #Convert to seconds since start of epoch my $time1 =... (3 Replies)
Discussion started by: pavanlimo
3 Replies
Login or Register to Ask a Question